本文主要是介绍DeepLink功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
可由第三方应用唤醒,也可以由网页唤醒,也可以通过adb命令直接测试唤醒。
1.网页唤起用例:
<!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='test://xiaoshuo.com/detail?id=28493'">
</html>
直接保存为html文件,存入手机中,然后选择用浏览器打开,点击“点击我打开Deeplink”按钮后,会显示下面的弹框,点击确认,即可唤醒相关应用。
2.adb命令唤起
adb shell am start -a android.intent.action.VIEW -d "test://xiaoshuo.com/detail?id=28493"
3.应用唤起
4.被唤醒应用设置
4.1AndroidManifest设置
<activity android:name="com.xiaoshuo.activity.DetailActivity" android:theme="@style/TranslucentTheme" ><intent-filter><dataandroid:scheme="test"android:host="xiaoshuo.com"android:pathPrefix="/detail"/><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><category android:name="android.intent.category.BROWSABLE"/></intent-filter></activity>
4.2 Activity接收参数
// 判断是否外部唤起Uri data = getIntent().getData();if (data != null) {String host = data.getHost();String path = data.getPath();String id = data.getQueryParameter("id");String scheme = data.getScheme();Logger.i(TAG, "host: " + host);// xiaoshuo.comLogger.i(TAG, "path: " + path);// detailLogger.i(TAG, "scheme: " + scheme);// testLogger.i(TAG, "id: " + id);// 10086}
这个时候就可以测试DeepLink唤醒了。
至于是否直接进入到对应的Activity,还是需要判断被唤醒Activity之前的界面是否存在,然后再一级一级的进行跳转,就需要具体问题具体分析了。不过我们的应用没有考虑那么复杂,只需要唤醒进入对应的详情界面即可,按返回键时,会判断上一个Activity的界面是否存在,不存在则重新打开即可。
这篇关于DeepLink功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!