在手機瀏覽器中可以通過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中對
(來自網絡)
在頁面中我們就可以通過這樣來調用,調起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