为何能够经过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

相关文章
相关标签/搜索