手機瀏覽器開啟APP ,或者導向App Store or Google Play下載 « 關於網路那些事...
手機瀏覽器開啟APP ,或者導向App Store or Google Play下載
若使用者有安裝APP,則自動啟用,若無安裝,則導向下載頁面。
在 iOS 之前,如果要從各種瀏覽器啟動APP,都必須透過 URI Scheme
在 iOS9 之後的版本,只要你的應用程式支援 Universal Links(通用連結),就可以直接透過HTTP來啟動APP (在此不討論Universal Links)
下表格分別比較幾種瀏覽器啟動APP的方式:
Universal Link | Android App Link | URI Scheme | Chrome Intent | |
---|---|---|---|---|
系統版本 | >= iOS 9 | >= Android 6 | Chrome1 < 25, iOS | Chrome1 >= 25 |
未安裝APP | 開啟 Web | 開啟 Web | 錯誤警示 | 開啟 Web |
能否不發生跳轉 | 不能 | 不能 | 能 | 能 |
前往下載地址 | 能 | 能 | 不能 | 能 |
iFrame觸發 | 不能 | 不能 | Chrome1 <= 18, iOS < 9 | 不能 |
連結組成 | 正常的 URL | 正常的 URL | 自定義 URL 格式 | 自定義 intent URL |
url scheme
scheme 是 Web 端和App約定好的一個URL協議,也可夾帶引數、路徑...。
手機如果安裝APP,理論上都能透過 url scheme 的方式來開啟APP
可以根據需求來新增引數,在APP接收引數再進行對應的處理
以 Twitter APP Scheme為例:
[有安裝APP的情況]
直接透過Http來動
透過這樣的方式就能直接開啟 twitter app
備註:
直接透過 scheme 方式,在 iOS9.0以上的版本,若未安裝APP,則會多跳出一個無效頁面
若有APP,則也會多一個確認視窗
若想強化這些體驗,可考慮研究 Universal Links 解決方式。
沒有安裝APP的情況
"若有安裝APP,當APP開啟時,Web頁面會暫時掛著"
我們可以透過這樣的方式來判斷是否有安裝APP,若無安裝APP則導向下載
啟動APP 實作,依照不同系統來設計啟動APP方式
開啟APP的方式在 Android, iOS, WindowsPhone 都不同
Chrome Intent
Chrome for Android 25 之後的環境,就能透過 Chrome Intent 來啟動APP
例如,啟動掃描QR Code APP的 Intent
另外再舉例,開啟 twitter APP的 Intent範例
Iframe 方式,在現行版本測試會有問題
透過 iframe 丟擲 scheme 連結的方式,來啟動 App
在過去,透過建立一個iframe 生成器的方式
能在背景丟擲 scheme 連結,啟動APP
但是這種方式,目前實測都會發生 scheme 無法偵測到 onload 事件的問題
由於使用 scheme 無法偵測到 onload 事件,因此在啟動APP之後,仍會繼續前往 Store
(src若改成一般網址,onload就會被偵測到)
不確定在不同裝置是否會正常運作,因此有興趣的朋友也可以參考,測試看看:
如果你喜歡我們的文章內容,請在這裡按個讚
Tweet