H5網頁喚醒App有哪些做法
- 2019 年 10 月 8 日
- 筆記
在這個流量為王的互聯網背景下,移動端的H5頁面顯然在導流上承擔著重要作用,在H5頁面上,我們對引流的需求有兩種:
- 一是引導已下載用戶從H5頁面喚醒App並直達指定場景
- 二是引導未下載用戶從H5頁面下載App,首次打開App時直達指定場景
從運營角度來看,引導已下載用戶打開App,能提高用戶粘性和活躍度,而用戶在App內的產品體驗自然也比H5頁面要好;引導未下載用戶下載App並進入指定頁面,顯然能給用戶更好的產品初體驗。
這裡其實就解釋了我們做H5喚醒App並直達指定頁面的必要性。
涉及哪些要素?
喚醒App這件事,在不同平台要採用不同的方法,主要是這三個:
- URL Scheme
- Universal Link
- Android App Links
1、URL Scheme
URL Scheme是iOS、Android都兼容的機制,只需要原生App開發時註冊Scheme即可,用戶點擊此類鏈接時,會自動喚醒App,並藉助URL Router機制跳轉到指定頁面。
- <scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]
- <scheme name>:是scheme的名稱,代表著協議名稱。
- <hierarchical part>:它包含 authority 和 path。
- <query>:可選項目,隔開或&隔開的鍵值對<key>=<value>
- <fragmentg> :可選項目包,其它額外的標識資訊
儘管URL Scheme兼容性高,但卻存在許多限制,比如:
- 中國各個廠商瀏覽器差異很大,當要被喚醒的目標App未安裝時,這個鏈接很容易出錯。
- 當註冊有多個Scheme相同的時候,目前是沒有辦法區分的。
- 不支援從其他App中的UIWebView中跳轉到目標App。
- 被部分主流平台禁止,微信、微博、QQ瀏覽器、手機百度中都已經被禁止使用。
正是由於這些限制的存在,蘋果和Android都不約而同發布了自己的第二套方案:iOS的Universal Link、Android的App Links。
2、Universal Link
Universal Link是iOS9後蘋果推出的通用鏈接技術,能夠方便的通過一個https鏈接來打開App指定頁面,不需要額外的判斷,如果沒有安裝App,可以跳轉到自定義地址。
相對Scheme的優勢在於,Universal Link是一個Web Link,因此少了很多麻煩:
- 當用戶已安裝該App時,不需要載入任何頁面,能夠立即喚醒App,用戶未安裝App,則跳去對應的web link(自定義頁面)。
- Universal Links支援從其他App中的UIWebView中跳轉到目標app。
- 提供Universal Link給別的App進行App間的交流,然而對方並不能夠用這個方法去檢測你的App是否被安裝,具有比較好的隱私性。
- 絕大多數平台都支援Universal Link,微信7.0.5版本也解除了對Universal Link的限制,同時也能被搜索引擎索引。
3、App Links
Android M以上版本可以通過App Links,讓用戶在點擊一個鏈接時跳轉到App的指定頁面,前提是這個App已經安裝並經過驗證。App Links的最大的作用,就是可以避免從頁面喚醒App時出現的選擇瀏覽器選項框,前提是必須註冊相應的Scheme,就可以實現直接打開關聯的App。
實際上App Links和Universal Links差異不大,但相對來說有不同的限制:
- App links在中國的支援還不夠,部分Android瀏覽器並不支援跳轉至App,而是直接在瀏覽器上打開對應頁面。
- 系統詢問是否打開對應App時,假如用戶選擇「取消」並且選中了「記住此操作」,那麼用戶以後就無法再跳轉App。
幾個方案的缺陷
這幾種方式無論哪種都無法解決這幾個問題:
- 當用戶未安裝目標App時,無法保留用戶停留的上下文,也就是說,用戶下載完App後,無法在首次打開App時還原指定頁面。
- Web目前無法監聽App是否已安裝,因此這幾個方案都需要一些其他方法兼容喚醒App,或者跳轉下載頁面。
那麼怎樣實現用戶安裝App後進入指定頁面呢?
眾所周知,蘋果出於用戶隱私的保護,設置了名為沙盒的機制:應用只能訪問它聲明可以訪問的資源,但沙盒也阻礙了應用間合理的資訊共享。
但也不是完全沒辦法,比如使用模糊匹配,儘可能收集設備的特徵,將Web和App上的資訊點配合演算法做一個匹配是可以做到的,但準確率和成功率就取決於演算法本身。如果App本身業務需求不高,那麼低精度的方案也可以滿足,但如果業務上需要一個能做到一對一精準匹配的方案,那麼精準度不夠高顯然會影響業務的開展。
第三方服務
如果嫌精準度不夠高或者實現難度太大的話,可以交給專業的第三方去做,畢竟這幾項技術是基於系統平台的,Android 及 iOS 每個系統版本的迭代後,配置方式都會有新的變化,且Android機型眾多,瀏覽器眾多等也會導致出現兼容問題,開發者自行研發的話,資源配置以及系統更新後的維護成本是比較高的,還要考慮各種各樣的跳轉場景問題。
直接採用第三方SDK的好處就是,資源配置、兼容方面的適配這些事情都可以交給它們去做,畢竟這些供應商本身就是專業做這項服務的,它們提供的服務在穩定性和精準度方面也是經受過市場檢驗的,至少在精準匹配方面,有些已經能在邀請分享方面做到一對一匹配,集成SDK也花不了多少時間,十幾分鐘就可以搞定。
中國外提供這項技術的第三方服務商:
中國有:openinstall
國外有:Branch