如何用H5開發(fā)APP及其喚起功能實現(xiàn)
一、H5開發(fā)APP的主要模式
當今,使用H5開發(fā)APP主要存在三種模式。

1. Webapp模式:此模式主要是將網(wǎng)頁版內(nèi)容進行打包,無法調(diào)用原生功能,適用于簡單的移動網(wǎng)頁應用。
2. 混合式APP:此模式能夠在H5的基礎上調(diào)用部分原生功能,用戶體驗較Webapp有所提升。
3. RNapp模式:這是當前最為普遍的開發(fā)模式,通過使用React Native等技術(shù),能夠?qū)崿F(xiàn)大部分原生功能的使用,與原生APP的差別微乎其微。
二、H5如何實現(xiàn)喚起APP
前言:

在Hybrid開發(fā)中,我們經(jīng)常遇到一個需求:當用戶已安裝某APP時,點擊某鏈接或按鈕應直接打開該APP或跳轉(zhuǎn)到APP內(nèi)的特定頁面;若用戶未安裝,則引導其前往下載頁面或應用商店。這種H5與Native之間的交互,就是H5喚起APP的技術(shù)基礎。
實際體驗示例:
在瀏覽抖音時,點擊某些廣告可能會根據(jù)已安裝的APP進行跳轉(zhuǎn)。如已安裝對應APP,則會直接打開;未安裝時,則會被引導至應用商店進行下載。這種技術(shù)在實際應用中非常人性化。
喚端體驗:
簡單來說,喚端就是通過在H5頁面中嵌入特定代碼或鏈接,實現(xiàn)打開或跳轉(zhuǎn)到已安裝的APP。如上圖所示,在瀏覽器中打開知乎時,系統(tǒng)的提示是否在知乎中打開,即是喚端的體驗。這項技術(shù)對于廣告投放、用戶拉新、引流等場景尤為重要。

三、喚端技術(shù)的實現(xiàn)方式
喚端技術(shù),也稱為deeplink技術(shù),不同平臺的實現(xiàn)方式略有差異。常見的實現(xiàn)方式有以下幾種:
1. URLScheme(通用):這是一種較為普遍的技術(shù),兼容性較好。它由協(xié)議名、路徑、參數(shù)組成,一般由Native開發(fā)提供,H5端拿到后使用即可實現(xiàn)APP的喚起或跳轉(zhuǎn)。
2. UniversalLink(iOS):針對iOS系統(tǒng)的特殊實現(xiàn)方式,可實現(xiàn)網(wǎng)頁與APP之間的無縫跳轉(zhuǎn)。
3. AppLink、ChromeIntents(android):針對安卓系統(tǒng)的特定技術(shù),用于實現(xiàn)H5頁面與原生APP的交互。

以上就是關(guān)于如何使用H5開發(fā)APP及其喚起功能的簡單介紹。隨著移動應用的普及和技術(shù)的進步,H5開發(fā)APP及其喚起功能將在更多場景中發(fā)揮作用。深入了解URLScheme的組成與應用
====================
一、URLScheme的基本組成
URLScheme是一種用于深度鏈接的技術(shù),它允許我們直接打開應用程序的特定頁面或功能。其基本組成包括以下幾個部分:
1. [scheme:]

這是URLScheme的起始標識,用于識別這是一個特定應用程序的鏈接。
2. //authority
這部分用于指定應用程序的標識符或域名。
3. path
指定應用程序內(nèi)部的具體路徑或功能。

4. ?query
包含鍵值對的參數(shù)部分,用于傳遞額外信息。
5. fragment
頁面的片段標識符,一般用于頁面內(nèi)導航。
二、常用APP的URLScheme

當我們談論常用的APP如微信、支付寶、淘寶、QQ和知乎時,它們的URLScheme分別為:
微信:weixin://
支付寶:alipay://
淘寶:taobao://
QQ:mqq://

知乎:zhihu://
三、打開方式
常用的打開方式有以下幾種:
1. 直接通過window.location.href跳轉(zhuǎn)
這是一種簡單直接的方式,例如:window.location.href?='zhihu://'即可打開知乎APP。

2. 通過iframe跳轉(zhuǎn)
使用iframe標簽,并設置其src屬性為指定的URLScheme。例如:創(chuàng)建一個隱藏的iframe,然后設置其src屬性為'zhihu://'。
3. 使用a標簽進行跳轉(zhuǎn)
在HTML中創(chuàng)建一個a標簽,設置其href屬性為URLScheme。點擊該標簽即可打開對應的應用程序。
4. 通過jsbridge來打開

在某些場景下,我們可能需要通過JavaScript與原生代碼進行交互來打開APP。例如,使用window.miduBridge.call方法來打開APP。
四、判斷是否成功喚起APP
當用戶嘗試喚起APP失敗時,我們希望引導他們進行下載。如何判斷當前APP是否成功喚起呢?
我們可以通過監(jiān)聽頁面的visibilitychange來判斷。如果頁面隱藏,表示成功喚起APP;否則,表示喚端失敗,并引導用戶跳轉(zhuǎn)到應用商店進行下載。
五、結(jié)論

一、應用喚起測試與前端展示
前端南玖喚端測試Demo
在手機端應用中,應用喚起功能至關(guān)重要。在騰訊微博未安裝的情況下,我們的應用需要通過特定的手段引導用戶下載并打開該應用。下面以淘寶的下載頁為例進行演示。在這個演示中,我們采用了一種前端觸發(fā)的按鈕機制,即用戶點擊按鈕時觸發(fā)應用喚起操作。這個按鈕設計簡潔明了,名為“打開騰訊微博”。
二、URLScheme方式的應用喚起
URLScheme兼容性及優(yōu)缺點

URLScheme是一種常用的應用喚起方式,它在安卓和iOS平臺上都能很好地兼容。這種方式的缺點也很明顯。它無法準確判斷應用是否成功喚起。這是因為URLScheme本質(zhì)上是一個鏈接的跳轉(zhuǎn),不同于普通的http鏈接。如果用戶沒有安裝對應的APP,嘗試跳轉(zhuǎn)后瀏覽器將無任何反應。為了解決這個問題,開發(fā)者通常會設置一個定時器來引導用戶跳轉(zhuǎn)到應用商店下載應用,但這個定時器的時間并不固定,不同手機的喚起時間也不同。用戶可能會收到一個彈窗提示是否在對應APP中打開鏈接,這可能導致用戶流失。還存在URLScheme劫持的風險。使用URLScheme的應用容易被其他APP屏蔽。比如某些APP也會注冊相同的scheme,導致流量被劫持到其他APP中。因此開發(fā)者需要謹慎使用URLScheme方式的應用喚起功能。
三、UniversalLink(iOS)的應用喚起方式
UniversalLink在iOS中的優(yōu)勢
相比于URLScheme方式的應用喚起功能,UniversalLink(僅在iOS9及以上版本中支持)提供了更好的體驗和功能優(yōu)勢。它允許通過https協(xié)議的鏈接直接打開APP。這意味著如果應用未能成功喚起,用戶將被引導到相應的網(wǎng)頁而非停留在無法響應的狀態(tài)。UniversalLink不會彈出是否打開的提示框,提升了用戶的喚端體驗。由于使用了https協(xié)議,UniversalLink在安全性方面也有更好的表現(xiàn)。因此開發(fā)者可以考慮使用UniversalLink來提升iOS平臺上的應用喚起體驗。然而需要注意的是UniversalLink的使用范圍僅限于iOS系統(tǒng)因此開發(fā)者需要根據(jù)目標用戶群體選擇合適的喚起方式以滿足不同平臺的需求。同時開發(fā)者還需要關(guān)注安全性和用戶體驗等方面以確保應用喚起功能的穩(wěn)定性和可靠性從而提升用戶體驗和應用的競爭力。深度解析移動應用鏈接技術(shù):注冊域名與喚端策略
一、注冊域名與配置

在APP中,用戶需要首先注冊自己要支持的域名。隨后,在域名的根目錄下配置一個名為apple-app-site-association的文件。這一切步驟都是為了實現(xiàn)一種特殊的功能:當用戶點擊某個鏈接時,能夠直接打開相關(guān)的APP。對于前端開發(fā)者來說,具體的配置細節(jié)并不需要過多關(guān)注,只需與iOS開發(fā)團隊確認好支持的域名即可。
二、Universal Links的打開方式與適用性
Universal Links是一種相對URL Scheme更為先進的喚端技術(shù)。它的一個顯著優(yōu)點是,在喚端過程中不會有彈窗提示用戶是否打開,從而提升了用戶體驗,減少了用戶流失。無論用戶是否安裝了對應的APP,點擊鏈接都會根據(jù)系統(tǒng)配置直接打開APP或?qū)捻撁妗S捎谒趆ttp協(xié)議,也能解決URL Scheme無法準確判斷喚端失敗的問題。但需要注意的是,Universal Links只能在iOS系統(tǒng)上使用,且只能由用戶主動觸發(fā)。
三 回顧AppLink(Android)
在2015年的Google I/O大會上,Android宣布了AppLink這一新特性。它允許用戶在點擊一個普通web鏈接時,如果對應APP已安裝并經(jīng)過驗證,則直接打開該APP的指定頁面。這避免了從頁面喚醒App時出現(xiàn)選擇瀏覽器選項框的問題。但AppLink在國內(nèi)的支持并不廣泛,部分安卓瀏覽器并不支持跳轉(zhuǎn)到App,而是在瀏覽器上直接打開對應頁面。如果用戶選擇取消打開操作并記住此操作,后續(xù)可能無法再跳轉(zhuǎn)至App。

四、ChromeIntents(Android)簡介
ChromeIntents是Android設備上Chrome瀏覽器中URI方案的深層鏈接替代品。如果APP已安裝,它會通過配置的URISCHEME打開APP;如果APP未安裝,則會跳轉(zhuǎn)至應用市場或配置的fallbackurl。但遺憾的是,這兩種方案在國內(nèi)的應用相對較少。
五、方案對比與選擇
將URL Scheme、Universal Link、AppLink等進行對比,可以發(fā)現(xiàn)每種方案都有其優(yōu)勢和適用場景。URL Scheme兼容性最好,但用戶體驗相對較差,特別是在APP未安裝或存在多個相同scheme時。Universal Link在iOS上表現(xiàn)優(yōu)秀,提升了用戶體驗。AppLink在安卓系統(tǒng)上提供了一種優(yōu)雅的解決方案,但國內(nèi)支持有限。ChromeIntents則是URI方案的替代品,但在國內(nèi)應用較少。
開發(fā)者在選擇移動應用鏈接技術(shù)時,需綜合考慮平臺兼容性、用戶體驗、技術(shù)成熟度等因素。隨著移動技術(shù)的發(fā)展和普及,這些技術(shù)將持續(xù)優(yōu)化并為用戶帶來更好的體驗。深入理解App鏈接技術(shù):Universal Link與App Link的差異及其應用場景

一、Universal Link技術(shù)介紹與特點
1. Universal Link技術(shù)概述
Universal Link是一項能夠從服務器上查詢并確定需要打開的APP鏈接的技術(shù)。這種技術(shù)避免了潛在的沖突問題,因為它智能地識別并導向正確的應用。
2. Universal Link的應用場景
該技術(shù)最顯著的特點之一是支持從其他APP中的UIWebView中無縫跳轉(zhuǎn)到目標APP。這一功能極大地提升了用戶體驗,特別是在集成多個應用時。

3. Universal Link的潛在挑戰(zhàn)
雖然Universal Link功能強大,但它也存在一些局限性。其中之一是,它會“記住”用戶的選擇:一旦用戶通過Safari或其他瀏覽器點擊了Universallink,iOS系統(tǒng)會檢測并記錄用戶的偏好(是直接打開APP還是打開網(wǎng)站)。之后的操作中,系統(tǒng)默認延續(xù)這一選擇,除非用戶主動通過網(wǎng)頁上的SmartAppBanner上的OPEN按鈕進行更改。
二、App Link技術(shù)解析與對比
1. App Link技術(shù)介紹
App Link與Universal Link有許多相似之處,但也有其獨特之處。它同樣可以實現(xiàn)跨應用鏈接跳轉(zhuǎn),但在某些特定環(huán)境下,其支持度可能不如Universal Link。

2. App Link與Universal Link的對比
相較于Universal Link,App Link在國內(nèi)的支持相對較差。在某些瀏覽器或手機ROM中,App Link可能無法直接鏈接到指定的APP,而是在瀏覽器中打開了相應的鏈接。當用戶被詢問是否使用APP打開鏈接時,如果選擇“取消”并被系統(tǒng)記住選擇,那么下次嘗試鏈接到APP時可能不會有任何反應。
三、推薦閱讀與技術(shù)拓展
1. 技術(shù)文章推薦
我們推薦您閱讀關(guān)于性能優(yōu)化、Vue異步更新機制、前端安全等方面的技術(shù)文章,以拓展知識領(lǐng)域。例如:“性能優(yōu)化之html、css、js三者的加載順序”,“Vue面試知識點超全面總結(jié)”等。

四、關(guān)于H5開發(fā)的App與原生App的區(qū)別
1. H5與原生App的對比
H5開發(fā)的App與原生App在某些方面存在差異。H5的性能在某些場景下可能較弱,特別是在復雜交互或大量數(shù)據(jù)處理時。對于論壇、咨詢等模塊,H5開發(fā)較為合適,可以方便進行熱更新和跨平臺共享。但對于需要高性能的應用,原生App可能更為合適。
五、結(jié)語與展望
未來技術(shù)趨勢與公眾號的互動

隨著技術(shù)的不斷進步,App鏈接技術(shù)也在不斷發(fā)展。我們希望通過分享這些技術(shù)知識,與廣大開發(fā)者共同進步。歡迎您關(guān)注我們的公眾號「前端南玖」,并參與前端交流群,一起學習和交流。讓我們期待下一次的技術(shù)分享!
原文首發(fā)地址:[點擊這里查看原文]。如果您對更多內(nèi)容感興趣或想了解更多關(guān)于前端技術(shù)的信息,請持續(xù)關(guān)注我們的公眾號和博客。感謝您的支持!我是南玖,讓我們下期再見!