在手機瀏覽器中能夠經過URL調起APP是否是很神奇?這篇文章就告訴你爲何。html
先從前端能接觸到的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中對
(來自網絡)
在頁面中咱們就能夠經過這樣來調用,調起APP並進入對應的詳細頁面:
window.location.href = 'xl://goods:8888/goodsDetail?goodsId=10011002';
再從客戶端角度Intent分析一下
Intent是一種運行時綁定(run-time binding)機制,Intent能夠經過多種方式協助組件之間的通訊。
在前面URL Scheme
的設置中,能夠看到咱們設置了<intent-filter>
標籤中的<data>
部分。
具體Android方向的專業理解知識見:Android Activity和Intent機制學習筆記
Uniform Resource Identifier
android Intent機制詳解
Android 跨應用間調用: URL Scheme