爲何能夠經過URL來調起APP - URL Scheme和Intent

在手機瀏覽器中能夠經過URL調起APP是否是很神奇?這篇文章就告訴你爲何。html

URL Scheme


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

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

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

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

Android的URL Scheme的結構:學習

(來自wiki)url

表示方式一:.net

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

表示方式二:code

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

具體例子(僞):orm

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

相關文章
相關標籤/搜索