IOS下的應用喚起實現原理
一、什麼是IOS應用喚起
IOS中的應用喚起用來實現以下功能:在瀏覽器中可以通過某些方式開啟IOS手機本地的app,如果該app沒有安裝可以跳轉到該應用對應的App Store的下載頁。
二、App store下載頁連線
App store中某個應用的下載頁連線形如:https://itunes.apple.com/us/app/id399608199。在PC端瀏覽器開啟該連線會跳轉到應用詳情頁的PC端介面。在Safari中開啟該連線,瀏覽器會詢問是否在App Store中開啟該連線,選擇開啟即會自動開啟App Store並跳轉到對應應用的下載介面。
三、URL Schemes
URL Schemes和URL很類似,一個
基本URL Schemes指的是如weixin://的這部分。通過這個基本URL Schemes,可以開啟某個IOS APP應用。比如在Safari的位址列中輸入weixin://,瀏覽器就會提示是否開啟微信,選擇開啟,手機就會自動開啟本地的微信應用。
四、IOS應用喚起方法
1.直接跳轉法(支援各個版本IOS系統)
最簡單的方法,在頁面中使用a標籤製作一個按鈕,讓其href指向開啟APP的基本URL Schemes即可。考慮到可能本地沒有安裝,這時需要通過js程式碼讓瀏覽器跳轉到對應的App Store下載頁。可以設定一個合理的反映時間時間,如果超時還沒有開啟應用的話,就跳轉到下載頁面,可以使用setTimeout方法,程式碼如下:
$('a').click(function() { location.href = 'weixin://'; setTimeout(function() { location.href = 'https://itunes.apple.com/us/app/id399608199'; }, 500); }
2.使用iframe(僅支援IOS8及其以下版本)
通過為body中新增一個隱藏的iframe,其內部的src設定成對應的連線,即可實現該功能,程式碼如下:
var url = {
open: 'weixin://', //對應的Scheme
down: 'https://itunes.apple.com/us/app/id399608199' //對應的下載地址
};
var iframe = document.createElement('iframe'); //建立一個iframe
var body = document.body;
iframe.style.cssText='display:none;width=0;height=0'; //設定該iframe為不可見的
var timer = null;
var openapp = document.getElementById('openapp');
openapp.addEventListener('click', function() {
body.appendChild(iframe); //點選開啟app按鈕後,將這個iframe新增到body中
iframe.src = url.open; //設定iframe的src為weixin://,通過這個iframe進行跳轉
timer = setTimeout(function() {
wondow.location.href = url.down; //500ms後跳轉到下載介面
}, 500);
}, false)
3.使用Universal links(目前僅IOS9支援)
Universal links是IOS9新增的功能,它是一個普通的HTTP連線。通過Universal links,能夠方便的通過傳統的HTTP連結來啟動APP(如果iOS裝置上已經安裝了app), 或者開啟對應下載介面(iOS裝置上沒有安裝app)。