此自定义仅供参考!
首先打开androidManifest.xml
在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属性和所有的路径属性都会被忽略。