你的位置:首页 > Java教程

[Java教程]android deep link(深度链接)与自定义协议!


此自定义仅供参考!

首先打开androidManifest.

在MainActivity中添加如下内容:

<activity android:name=".MainActivity">    ......  <intent-filter>      <action android:name="android.intent.action.VIEW"/>      <category android:name="android.intent.category.DEFAULT"/>      <category android:name="android.intent.category.BROWSABLE"/>      <data          android:scheme="com.example.androidtest"       />  </intent-filter></activity>
其中data标签里面android:scheme用于指定协议,类似于http这样的东西,这里我们指定成了com.example.androidtest,
这是一个自定义的协议,指定成这样是为了避免和其它的应用程序冲突.
我们还可以通过android:host来指定域名,android:port来指定端口,android:path来指定路径,
这些属性都可以对deep links进行更多的限制,要满足特定条件才能打开指定App.
顺便说下https://www.baidu.com/s?cl=3&wd=deeplink 拆分的意思对应下面的
scheme://host:port/pathorpathPrefixorpathPattern
https表示加密的协议 对应android data标签里面的scheme
www.baidu.com 表示域名 对应data标签里面的host
s 表示端口 对应data标签里面的port
cl=3&wd=deeplink 表示path路径 对应data标签里面的path
这些属性是可选的,但也是相互依赖的。如果没有给Intent过滤器指定scheme属性,那么所有其他的URI属性都会被忽略。如果没有给过滤器指定host属性,那么port属性和所有的路径属性都会被忽略。