DeepLink当做笔记记之。
文章转载自菜鸟教程
源码:https://github.com/xiabing0802/DeepLink-1
DeepLink
- DeepLink 从字面意思可以理解为「深度链接」,那么 DeepLink 在 Android 开发中有什么作用呢?简单来说,可以用这种技术实现 web 页面点击一个链接跳转至 APP 指定的某一页面。这种技术的好处是可以为我们的 APP 导流。
使用
- 在AndroidManifest.xml中设置
1
<uses-permission android:name="android.permission.INTERNET"/>
- 添加intent-filter
1
2
3
4
5
6
7
8
9
10
11
<activity android:name=".DeepLinkActivity">
<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:host="share"
android:scheme="go" />
</intent-filter>
</activity>
- 在html文件中
1
2
3
4
<div>
<a id="J-call-app" href="javascript:;" class="label">立即打开>></a>
<input id="J-download-app" type="hidden" name="storeurl" value="http://m.chanyouji.cn/apk/chanyouji-2.2.0.apk">
</div>
-
用 go://share/main?name=tomcat&age=100 在手机浏览器中打开
-
android activity中打开页面解析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void getDataFromBrowser() {
Uri data = getIntent().getData();
try {
scheme = data.getScheme(); // "will"
host = data.getHost(); // "share"
params = data.getPathSegments();
String testId = params.get(0); // "uuid"
String path =data.getPath();
String name =data.getQueryParameter("name");
String age =data.getQueryParameter("age");
tv_data.setText("Scheme: " + scheme + "\n" + "host: " + host + "\n" + "params: " + testId + "\n" + "path: " + path+
"\n" + "name: " + name +"\n" + "age: " + age );
} catch (Exception e) {
e.printStackTrace();
}
}