標籤:class code java http com strong
需求:
如何讓使用者通過手機瀏覽器(Mobile Safari),訪問一個URL就能直接開啟ios上的App應用,如果該應用沒有安裝,那麼直接跳轉到App Store的App下載頁面。
準備工作
- ios SDK的OpenURL函數和URL Scheme
- JavaScript的window.location和setTimeout函數
代碼實現
下面以開啟暖島app為例子,JS實現部分如下
window.location = ‘nuandao://web2app‘;setTimeout(function() { window.location = ‘itms-apps://itunes.apple.com/cn/app/nuan-dao/id583307376?mt=8‘}, 30);
看到的效果:
1. 如果你已經安裝了暖島APP,那麼會直接開啟該App2. 如果你還沒安裝,那麼會直接跳轉到APP Store的下載頁面
思路:
1. window.location的串連執行開啟應用2. 延遲開啟App Store下載應用頁面
具體來說,當你開啟連結時,Mobile Safari通過window.location指向URL Scheme,直接開啟本地APP。否則30ms後開啟下載頁面。如果應用成功開啟,生命週期就是啟用狀態,那麼瀏覽器的狀態進入後台,頁面裡的所有操作都被登出了,顯然timeout會被clear掉,如果你沒有成功開啟應用即返回404,那麼30ms後面頁面當然會自動跳轉了。注意是items-apps:而不是http://,否則可能會有錯誤。
接下來結合移動判斷,實現需求。
if(/(iphone|ipad|ipod)/i.test(navigator.userAgent)) { $(‘#header‘).addClass(‘ios‘); // 調整結構 $(‘#J_itunes-cover‘).show(); // 顯示下載條 $(‘#J_itunes‘).click(function() { window.location = ‘nuandao://web2app‘; setTimeout(function() { window.location = ‘itms-apps://itunes.apple.com/cn/app/nuan-dao/id583307376?mt=8‘ }, 30); });}
本文轉載: http://jsdashi.com/development/511.html