IOS 開發(fā)之應(yīng)用喚起實(shí)現(xiàn)原理詳解
一、什么是iOS應(yīng)用喚起
IOS中的應(yīng)用喚起用來實(shí)現(xiàn)以下功能:在瀏覽器中可以通過某些方式打開IOS手機(jī)本地的app,如果該app沒有安裝可以跳轉(zhuǎn)到該應(yīng)用對(duì)應(yīng)的App Store的下載頁。
二、App store下載頁連接
App store中某個(gè)應(yīng)用的下載頁連接形如:https://itunes.apple.com/us/app/id399608199。在PC端瀏覽器打開該連接會(huì)跳轉(zhuǎn)到應(yīng)用詳情頁的PC端界面。在Safari中打開該連接,瀏覽器會(huì)詢問是否在App Store中打開該連接,選擇打開即會(huì)自動(dòng)打開App Store并跳轉(zhuǎn)到對(duì)應(yīng)應(yīng)用的下載界面。
三、URL Schemes
URL Schemes和URL很類似,一個(gè)URL可以指向某個(gè)網(wǎng)站(如https://www.apple.com指向蘋果官網(wǎng)),也可以指向該網(wǎng)站內(nèi)部具體的某個(gè)頁面(如https://www.apple.com/mac/指向蘋果官網(wǎng)的Mac頁面)。一個(gè)URL Schemes也可以指向某個(gè)APP(weixin://指向微信這個(gè)APP)或者APP內(nèi)部的某個(gè)功能(weixin://dl/moments/指向微信朋友圈功能)。
基本URL Schemes指的是如weixin://的這部分。通過這個(gè)基本URL Schemes,可以打開某個(gè)IOS APP應(yīng)用。比如在Safari的地址欄中輸入weixin://,瀏覽器就會(huì)提示是否打開微信,選擇打開,手機(jī)就會(huì)自動(dòng)打開本地的微信應(yīng)用。
四、IOS應(yīng)用喚起方法
1.直接跳轉(zhuǎn)法(支持各個(gè)版本IOS系統(tǒng))
最簡(jiǎn)單的方法,在頁面中使用a標(biāo)簽制作一個(gè)按鈕,讓其href指向打開APP的基本URL Schemes即可??紤]到可能本地沒有安裝,這時(shí)需要通過js代碼讓瀏覽器跳轉(zhuǎn)到對(duì)應(yīng)的App Store下載頁??梢栽O(shè)定一個(gè)合理的反映時(shí)間時(shí)間,如果超時(shí)還沒有打開應(yīng)用的話,就跳轉(zhuǎn)到下載頁面,可以使用setTimeout方法,代碼如下:
$('a').click(function() { location.href = 'weixin://'; setTimeout(function() { location.; }, 500); }
2.使用iframe(僅支持IOS8及其以下版本)
通過為body中添加一個(gè)隱藏的iframe,其內(nèi)部的src設(shè)置成對(duì)應(yīng)的連接,即可實(shí)現(xiàn)該功能,代碼如下:
var url = { open: 'weixin://', //對(duì)應(yīng)的Scheme down: 'https://itunes.apple.com/us/app/id399608199' //對(duì)應(yīng)的下載地址 }; var iframe = document.createElement('iframe'); //創(chuàng)建一個(gè)iframe var body = document.body; iframe.style.cssText='display:none;width=0;height=0'; //設(shè)置該iframe為不可見的 var timer = null; var openapp = document.getElementById('openapp'); openapp.addEventListener('click', function() { body.appendChild(iframe); //點(diǎn)擊打開app按鈕后,將這個(gè)iframe添加到body中 iframe.src = url.open; //設(shè)置iframe的src為weixin://,通過這個(gè)iframe進(jìn)行跳轉(zhuǎn) timer = setTimeout(function() { wondow.location.href = url.down; //500ms后跳轉(zhuǎn)到下載界面 }, 500); }, false)
3.使用Universal links(目前僅IOS9支持)
Universal links是IOS9新增的功能,它是一個(gè)普通的HTTP連接。通過Universal links,能夠方便的通過傳統(tǒng)的HTTP鏈接來啟動(dòng)APP(如果iOS設(shè)備上已經(jīng)安裝了app), 或者打開對(duì)應(yīng)下載界面(iOS設(shè)備上沒有安裝app)。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- iOS中的NSURLCache數(shù)據(jù)緩存類用法解析
- Objective-C的緩存框架EGOCache在iOS App開發(fā)中的使用
- C++開發(fā)在IOS環(huán)境下運(yùn)行的LRUCache緩存功能
- 使用Javascript判斷瀏覽器終端設(shè)備(PC、IOS(iphone)、Android)
- iOS 條碼及二維碼掃描(從相冊(cè)中讀取條形碼/二維碼)及掃碼過程中遇到的坑
- iOS實(shí)現(xiàn)時(shí)間顯示幾分鐘前,幾小時(shí)前以及剛剛的方法示例
- IOS正則表達(dá)式判斷輸入類型(整理)
- iOS 仿百度外賣-首頁重力感應(yīng)的實(shí)例
- IOS TextFiled與TextView 鍵盤的收起以及處理鍵盤遮擋
- IOS與網(wǎng)頁JS交互詳解及實(shí)例
- IOS Cache設(shè)計(jì)詳細(xì)介紹及簡(jiǎn)單示例
相關(guān)文章
iOS界面跳轉(zhuǎn)時(shí)導(dǎo)航欄和tabBar的隱藏與顯示功能
這篇文章主要介紹了iOS界面跳轉(zhuǎn)時(shí)導(dǎo)航欄和tabBar的隱藏與顯示功能,需要的朋友可以參考下2017-02-02iOS和JS交互教程之WKWebView-協(xié)議攔截詳解
這篇文章主要給大家介紹了關(guān)于iOS和JS交互教程之WKWebView-協(xié)議攔截的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09IOS開發(fā)之字典轉(zhuǎn)字符串的實(shí)例詳解
這篇文章主要介紹了IOS開發(fā)之字典轉(zhuǎn)字符串的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這樣的方法,需要的朋友可以參考下2017-10-10iOS實(shí)現(xiàn)文件切片儲(chǔ)存并且上傳(仿斷點(diǎn)續(xù)傳機(jī)制)
這篇文章主要給大家介紹了關(guān)于iOS實(shí)現(xiàn)文件切片儲(chǔ)存并上傳仿斷點(diǎn)續(xù)傳機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12iOS開發(fā)技巧之狀態(tài)欄字體顏色的設(shè)置方法
有時(shí)候我們需要根據(jù)不同的背景修改狀態(tài)欄字體的顏色,下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)技巧之狀態(tài)欄字體顏色的設(shè)置方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-08-08iOS開發(fā)實(shí)現(xiàn)轉(zhuǎn)盤功能
這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)實(shí)現(xiàn)轉(zhuǎn)盤功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04IOS 遠(yuǎn)程通知兼容(IOS7,IOS8)實(shí)例詳解
這篇文章主要介紹了IOS 遠(yuǎn)程通知兼容(IOS7,IOS8)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03Objective-C中使用NSString類操作字符串的方法小結(jié)
這篇文章主要介紹了Objective-C中使用NSString類操作字符串的方法小結(jié),文中講到了字符串的分割和拼接等一些常見的用法,需要的朋友可以參考下2016-01-01