應用通過審覈以後,由開發者設置應用上架,但何時能在appstore搜索到該應用,這個時間不等,有時候15分鐘左右有時候2個多小時,以前就是隔一段時間打開網頁然後刷新一下,或者搜索一下,查看版本號,操作幾次後明顯感覺很崩潰了…
既然只是想知道應用的版本號,只要抓取頁面,然後獲取頁面的版本號信息,就知道是否更新過來了,然後通過公司內部的OA接口,發送一條消息,告知所有相關的人員版本號已經更新了…
我用node.js實現的,代碼大約在30行左右,下面是實現…
這裏我藉助了request這個模塊 npm install request (查看模塊詳情>>)
1: var request = require('request') 2: var request = request.defaults({jar: true}) 3: 4: function getAppVersion() { 5: request.get("http://itunes.apple.com/cn/app/xxx/idxxxx?mt=8&t=" + new Date().getTime(), function(error, response, body) { 6: if (/\<li\><span class=\"label\">版本\: <\/span>([^<]+)\<\/li\>/.test(body)) { 7: var currVer = RegExp["$1"]; 8: console.log("當前版本:" + currVer); 9: if (currVer == "1.0.2") { 10: return sendOANotification(currVer); 11: } 12: } 13: setTimeout(getAppVersion, 3 * 1000); 14: }) 15: } 16: 17: function sendOANotification(currVer) { 18: request.post('http://oa.xxx.net/login.php', {form:{UNAME:"meteoric_cry", PASSWORD:"xxxx"}}, function(error, respose, body) { 19: if (/location=\"general\"\;/.test(body)) { 20: var uid_str = ["meteoric"].join(",");//需要添加多個人,只需要在數組裏添加uid 21: var url = "http://oa.xxx.net/general/reservation/sendsmsapi.php?uid='"+uid_str+"'&cont='AppStore Version:"+currVer+"'"; 22: 23: request.get(url, function(error, response, body) { 24: //console.log(body) 25: console.log("OA消息發送成功"); 26: }) 27: } else { 28: console.log("登錄OA失敗"); 29: } 30: }) 31: } 32: 33: getAppVersion()
這個功能,如果想靈活一點,就讓調用者傳入參數:應用的下載地址、最新的版本號、刷新網頁的頻率、需要通知的人員列表。可以做成一個客戶端應用(Exe程序),或者hta程序,或者其它任意不需要依賴其它人安裝額外環境的程序