你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS 開發之應用喚起實現原理詳解

IOS 開發之應用喚起實現原理詳解

編輯: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可以指向某個網站(如https://www.apple.com指向蘋果官網),也可以指向該網站內部具體的某個頁面(如https://www.apple.com/mac/指向蘋果官網的Mac頁面)。一個URL Schemes也可以指向某個APP(weixin://指向微信這個APP)或者APP內部的某個功能(weixin://dl/moments/指向微信朋友圈功能)。

基本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)。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved