栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 中的深度链接技术

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 中的深度链接技术

前言

日常中,我们经常需要从浏览器中的网页或者从其它APP中直接打开我们的APP,我们就需要使用到深度链接技术。实现方式分别是 Dee pLinks 和 APP Links。

Deep Links

deep links是谷歌支持的一种打开app指定页面的方式,常用于从H5页面跳转至app目标页面。其对应指定页面的匹配规则是按照URI来匹配的。常见URI格式如下图:

示例
  1. H5测试页面

点击唤起app
点击唤起app
点击唤起app
 

如上

  • scheme = http、https、abc。 DeepLink中 scheme 可自定义
  • host = demo.deaven.com
  • port = 2003
  • path = test/data
  • 传递参数(key-value): params1 : value1 params2 : value2
  1. Android配置
 
            
                

                
            
             
                
                
                
                

                 
                
                
                
                
                
                
                

            
         

3.Activity中解析Intents

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Uri uri = getIntent().getData();
    String scheme = uri.getScheme(); // http、https、abc
    String host = uri.getHost(); // demo.deaven.com
    String path = uri.getPath(); // test/data
    String query = uri.getQuery(); // params1=value1¶ms2=value2
    String value1 = uri.getQueryParameter("params1"); 
    String value2 = uri.getQueryParameter("params2");
} 

为了更好的管理以及用户体验,app中可以声明一个中间页根据参数统一分发跳转请求。

注意事项
  1. scheme为 htttp/https 开头的uri,部分浏览器和手机ROM 并不能链接至APP,而是在浏览器中打开了对应的链接。所以做Deep Links时建议全部采用自定义Scheme的形式。

  2. 在询问是否用APP打开对应的链接时,如果选择了“取消”并且“记住选择”被勾上,那么下次你再次想链接至APP时就不会有任何反应!!!

  3. 不同的host不要写在同一个Intent Filter中,最好为每种匹配规则新建一个Intent Filter

App Links

Android在Android 6.0 (API level 23) 及以后加入了App Links , 当用户点击对应的URI 时,会直接启动对应的APP,不会再出现类似Deep Links 中是否打开app 的对话框出现。

Intent Filter
 
            
                

                
            
             
                
                
                
                

                 
                
                
                
                
                
                

            
         
  • Intent Filter和Deep Links 类似 但是 scheme只能使用 htttp 或 https 不支持自定义scheme。

  • android:autoVerify=“true” 会让APP自动在所列的host中去验证,如果验证成功,APP将成为匹配URI默认打开方式。

配置 assetlinks.json
  1. 你可以访问developers.google.com/digital-ass… 生成assetlinks.json,如下图:

如不能翻墙,可复制下方代码修改为自己参数,生成 assetlinks.json文件 ,json文件名只能是 assetlinks 不能自定义

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target" : { "namespace": "android_app", "package_name": "com.deaven.link",
               "sha256_cert_fingerprints": [""14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5""] }
}] 

2.部署assetlinks.json

我们的host为demo.deaven.com,那么我们就需将assetlinks.json放到 https://demo.deaven.com/.well-known/assetlinks.json 并可以正常访问。你也可以在 developers.google.com/digital-ass… 检查服务器上assetlinks.json是否可访问如下图:

3.Activity中解析Intents 类似 Deep Links

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/956400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号