在网络应用中获取iphone ID

nks*_*s14 7 javascript iphone web-applications

我想为iPhone创建一个网络应用程序,我需要获取设备的ID(而不是用户名/密码).可以这样做吗?

pow*_*984 9

看起来你可以在没有太多工作的情况下获得UDID,这个答案来自这篇博文:http: //bendytree.com/tips/Getting-an-iPhone-UDID-from-Mobile-Safari

Apple允许开发人员通过手机和Web服务器之间的特殊交互来获取一个人的UDID(以及做许多其他事情).这是一个概述:

  1. 他们单击您网站上.mobileconfig XML文件的链接
  2. 这会在他们的手机上提取他们的配置设置并为他们提供一个"安装"按钮(他们必须按下)
  3. 手机会将您以加密XML请求的数据发送到您在.mobileconfig中设置的URL
  4. 您处理结果数据并向他们显示"谢谢"网页

示例.mobileconfig用于检索UDID:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>http://yourwebsite.com/retrieve.php</string>
            <key>DeviceAttributes</key>
            <array>
                <string>UDID</string>
                <string>IMEI</string>
                <string>ICCID</string>
                <string>VERSION</string>
                <string>PRODUCT</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>yourwebsite.com</string>
        <key>PayloadDisplayName</key>
        <string>Profile Service</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>9CF421B3-9853-4454-BC8A-982CBD3C907C</string>
        <key>PayloadIdentifier</key>
        <string>com.yourwebsite.profile-service</string>
        <key>PayloadDescription</key>
        <string>This temporary profile will be used to find and display your current device's UDID.</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

您需要填写自己的URL和PayloadUUID.PayloadUUID不必以特殊方式生成 - 只需确保它对您的应用程序是唯一的.

还要确保为.mobileconfig注册文件处理程序(内容类型application/x-apple-aspen-config).

当用户看到配置文件时,会向用户显示PayloadOrganization和PayloadDescription.在我的描述中,我说过"按安装继续...",因为他们可能会在这个屏幕上混淆.

您不必签署.mobileconfig,但如果不签名,则会看到没有签名的警告(见下文).

未签名的个人资料图片

接收请求的数据 QUIRK警告:无论出于何种原因,该过程都特别关注服务器在将用户发送到您的预设URL时的响应方式.经过多次尝试,我相信您的接收URL必须是.php文件.这听起来很疯狂,但我很认真.

PHP是我想要使用的最后一种语言,因此我选择重定向到可以更好地处理它的页面.

<?php
  $data = file_get_contents('php://input');
  header("Location: http://www.mysite.com/Results?data=".rawurlencode($data));
?>
Run Code Online (Sandbox Code Playgroud)

QUIRK WARNING ::我(及其他人)使其工作的唯一方法是重定向到目录.我试图重定向到.aspx页面但它失败了.如果你没有做到这一点,那么将向用户显示一个模糊的错误消息,他们将被卡住.如果您对此有更好的解释,请在下面留言.

您重定向到的页面是向用户显示以结束进程的页面.

在我的示例中,该页面将接收包含来自电话的xml响应的"数据"查询字符串参数.

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>IMEI</key>
    <string>12 123456 123456 7</string>
    <key>PRODUCT</key>
    <string>iPhone4,1</string>
    <key>UDID</key>
    <string>b59769e6c28b73b1195009d4b21cXXXXXXXXXXXX</string>
    <key>VERSION</key>
    <string>9B206</string>
  </dict>
</plist>
Run Code Online (Sandbox Code Playgroud)


Nic*_*lás -1

当然不是。这将是一个巨大的隐私漏洞。