? ? ? ? ?最近在搞積分墻這一塊的東西,需要獲取手機的UDID來保證唯一性,翻遍了所有資料,雖然找到了網上好多教程,但是過程中也遇到一些問題與大家分享~~~
廢話少說,直接開始~~~
首先我們要生成一個.mobileconfig的XML文件:?生成地址?
一、生成步驟:
1、在你的Web服務器上創建一個.mobileconfig的XML格式的描述文件;
2、用戶在所有操作之前必須通過某個點擊操作完成.mobileconfig描述文件的安裝;
3、服務器需要的數據,比如:UDID,需要在.mobileconfig描述文件中配置好,以及服務器接收數據的URL地址;
4、當用戶設備完成數據的手機后,返回提示給客戶端用戶;
二、.mobileconfig:
這樣生成的文件在safair瀏覽器中打開后會有紅色提示未簽名,不過沒關系,也能獲取到UDID。
當然對于有些有強迫癥的來說想要很完美(比如我,哈哈~~~),那就對其進行簽名。網上有很多簽名方式大家可以找一下,也可以自己申請一個免費的證書對其進行簽名,簽名方法可以借鑒:簽名發放借鑒
三:新建一個用于下載mobileconfig的網頁,這里我命名為udid.php:
yourapp為應用提前設置的URL Schemes(查看自定義 URL Scheme 完全指南)
接下來下面的界面就是用戶通過瀏覽器點擊開始安裝時的界面,一步步點擊安裝即可。
四、下面為后臺接收到的數據:
我們安裝好之后,會通過步驟二里面設置好的鏈接用來接收設備post給后臺的UDID等數據。
php接收:
重定向一定要使用301重定向,否則安裝會提示"無效的描述文件(切記!切記!!!)
java接收:
重定向一定要使用301重定向,否則安裝會提示"無效的描述文件(切記!切記!!!)
五:都設置好之后我們通過步驟三設置的URL Schemes返回之后接收到數據
下面重點來了!!!好多會遇到下列情況(我在這卡了兩天):
不要著急,一步步查找原因:
1、請求一定要是https
2、mobileconfig下載時設置文件內容類型Content Type為:application/x-apple-aspen-config
3、有些下載的.mobileconfig文件里面有注釋,一定要刪掉!刪掉!
到此,一般情況下都能拿到設備的UDID了~~~~嘎嘎嘎~~~~哪有不對的地方希望大家批評指正!不喜勿噴~~
參考鏈接(感謝??):iOS 開發如何獲取UDID(用safari瀏覽器獲取設備的UDID) - 簡書