為什么可以通過URL來調起APP - URL Scheme和Intent


在手機瀏覽器中可以通過URL調起APP是不是很神奇?這篇文章就告訴你為什么。

URL Scheme


先從前端能接觸到的URL Scheme分析一下

丟wiki:https://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL Scheme就是一種協議url,同我們常見的http,ftp的本質一樣,資源定位符!

而在Android中自定義的URL Scheme是一種頁面內跳轉協議。

Android的URL Scheme的結構:

(來自wiki)

表示方式一:

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

表示方式二:

<scheme>://<host>:<port>/<path>?<query>

具體例子(偽):

xl://goods:8888/goodsDetail?goodsId=10011002

大體圖示:

通過這種類似的URL,APP會收到瀏覽器通知,並且通過解析URL Scheme(解析這塊操作是在安卓容器中處理的)的結構來展現對應的頁面(Activity)

前提是在安卓應用中,開發者定義了URL Scheme(自定義),通過安裝應用在系統中注冊該Scheme信息。

在安卓應用中的AndroidManifest.xml中對 標簽增加 設置Scheme

(來自網絡)

在頁面中我們就可以通過這樣來調用,調起APP並進入對應的詳細頁面:

window.location.href = 'xl://goods:8888/goodsDetail?goodsId=10011002';

Intent


再從客戶端角度Intent分析一下

Intent是一種運行時綁定(run-time binding)機制,Intent可以通過多種方式協助組件之間的通信。

在前面URL Scheme的設置中,可以看到我們設置了<intent-filter>標簽中的<data>部分。

具體Android方向的專業理解知識見:Android Activity和Intent機制學習筆記

參考


Uniform Resource Identifier
android Intent機制詳解
Android 跨應用間調用: URL Scheme


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM