Deeplink启动应用配置注意事项
1. Deeplink格式说明
Deeplink是目前使用广告跟踪非常热门的一种方式,Deeplink的链接类型一般是schema://host/path?params
样式。
2. 为接收Deeplink配置intent-filter
在Android设备中,点击Deeplink后可以打开指定应用,为了能够正确定位到需要打开的应用,并正确打开指定的Activity,需要应用开发过程中对Intent进行过滤接收进行配置(就是intent-filter
),具体做法是在AndroidManifest.xml
中对Activity
声明的时候添加的节点,配置schema
和一些必要的区分属性参数(如:host
、path
等)即可,配置的属性参数越多越详细,越能保证唯一性,准确打开需要打开的应用,而不是弹出打开应用选择框。
标签包含以下属性
- 动作:外部打开必须配置成ACTION_VIEW,这样外部的打开指令才能到达;
- 范畴:必须包含DEFAULT,这个category允许你的Activity可以接收隐式
Intent
,如果没有配置这个,Activity只能通过指定应用程序容器名称打开;也必须包含BROWSABLE,这个category允许你的intent-filter可以在Web浏览器中访问,如果没有配置这个,点击Web浏览器中的Deeplink链接将无法解析并打开Activity; - 数据:需要添加一个或者多个标签,每一个标签都描述了什么样格式的URI将会分派到Activity进行处理。每一个标签至少且必须包含一个android:schema属性。
你可以添加更多的属性来提高Activity所能接收的URI类型的精准度。举个例子:你的应用会在多个activity中接收类似的URI(相同的schema
和host
),但这些URI根据有这不同的路径(path
),在这种情况下,使用android:path属性,或者使用路径正则表达式(pathPattern
)和路径前缀(pathPrefix
)变种来区分对于不同的路径,系统需要打开哪个Activity。
测试的Deeplink链接:rsdkdemo://rs.com/test?referer=Deeplink_Test
Activity的配置intent-filter如下:
<activity android:name="com.rastargame.sdk.oversea.demo.RSDemoActivity" android:configChanges="orientation|keyboardHidden|navigation|screenSize" android:launchMode="singleTop" android:screenOrientation="sensor" android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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="rsdkdemo" android:host="rs.com" android:pathPrefix="/test"/>
</intent-filter>
</activity>
说明:
1.中的属性参数配置必须要根据Deeplink来配置,尽可能配置更多属性参数保证唯一,否则点击deeplink连接会出现选择打开应用页面。
2.如果需要在浏览器中也能打开应用,需要在intent-filter
中添加这个配置(这个属性的含义就是在特定的情况下,可以在浏览器中打开Activity)
3. intent-filter配置注意事项
- 在有的中添加标签配置会无法通过Deeplink正确打开相应页面。一个
Activity
是可以有多个标签,所以添加另外的标签进行配置; - 和两个是相互冲突的,同时添加这两个category会导致桌面图标无法显示的问题;
说明:如果你添加的
Activity
不包含android.intent.action.MAIN
的标签,就无需配置多个intent-filter
。
4. Deeplink数据解析
点击Deeplink打开应用的时候,会将Deeplink传入到应用,应用在Activity的onCreate
和onNewIntent
对数据就进行处理。
5. Deeplink测试
5.1 命令行adb测试deeplink
直接使用命令行adb测试deeplink,使用命令:
adb shell am start -a android.intent.action.VIEW -d "rsdkdemo://rs.com/test?referer=Deeplink_Test"
5.2 测试网页点击deeplink
- 首先,需要编写一个简单的html文件,保存为test.html,html文件内容如下:
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<meta id="viewport" name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,minimal-ui">
</head>
<html>
<input type="button" value="点击我打开Deeplink" onclick="javascrtpt:window.location.href='rsdkdemo://rs.com/test?referer=Deeplink_Test'">
</html>
- 然后将html文件拷贝到设备中,使用浏览器打开,点击按钮即可打开应用。
5.3 测试Facebook deeplink
测试Facebook deeplink需要集成Facebook SDK,然后完成相应的配置,然后通过广告助手测试DeepLinked,测试设备上必须安装了Facebook客户端,并且登录了开发者账号对应的Facebook账号。
文章来源于互联网:Android Deeplink配置
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/16733,转载请注明出处。
评论0