我们正在构建一个iOS MDM服务器来管理iOS设备。
以下是将iOS设备注册到MDM服务器中涉及的步骤
设备接收到推送通知,并与MDM服务器的“serverUrl”联系。它以如下所示的Status =“Idle”进行响应
<?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>Status</key>
<string>Idle</string>
<key>UDID</key>
<string><udid-of-device></string>
</dict>
</plist>
响应此命令,获取设备信息的方法如下。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Command</key>
<dict>
<key>RequestType</key>
<string>DeviceInformation</string>
<key>Queries</key>
<array>
<string>UDID</string>
<string>DeviceName</string>
<string>OSVersion</string>
<string>ModelName</string>
<string>IMEI</string>
</array>
</dict>
<key>CommandUUID</key>
<string>command-for-the-session</string>
</dict>
</plist>
设备以设备信息回复,如下所示
<?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>CommandUUID</key>
<string>command-for-the-session</string>
<key>QueryResponses</key>
<dict>
<key>DeviceName</key>
<string>iPhone</string>
<key>IMEI</key>
<string>01 353150 432467 8</string>
<key>ModelName</key>
<string>iPhone</string>
<key>OSVersion</key>
<string>7.1</string>
<key>UDID</key>
<string><udid-device></string>
</dict>
<key>Status</key>
<string>Acknowledged</string>
<key>UDID</key>
<string><udid-device></string>
</dict>
</plist>
该流程按要求工作。
在此之后,我想终止与设备的连接,因为没有其他要发送到设备的信息。
我的查询是在我们从设备收到该CommandUUID的有效详细信息之后,如何停止或关闭此连接。
它会继续调用mdm服务器url,并且不会终止连接。
我尝试发送一个空的plist来停止连接,但是没有运气。
请帮助。
谢谢阅读。!
最佳答案
设备将通过发送以下命令连续查询服务器的新命令:
<?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>Status</key>
<string>Idle</string>
<key>UDID</key>
<string><udid-of-device></string>
</dict>
</plist>
在这种情况下,如果您没有任何命令,则应返回带有空正文的HTTP 200。这表明设备应该停止轮询,直到您发送下一个推送通知为止。