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