Android AppLink使用经历

项目中需要实现分享功能,提前剧透,国内环境GG,验证App link不会失败,退化到deep link,还是要弹框选择处理程序

1.实现效果
有安装本app的,跳转到app,没有安装app的跳转到浏览器的官网,网上有自己定义scheme部分,让浏览器无法直接处理这个链接,而app定义这个协议后可以直接跳转到app,但是有一个问题,如果我需要有app跳转到app,无app跳转到官网,这个就不能实现了,应为自定义的scheme就无法被浏览器处理

2.实现方式
Android给我们提供了一个工具来生成这个链接
打开AndroidStudio -> Tools -> App Links Assistant
Android AppLink使用经历_第1张图片
先开始第一步 Open URL Mapping Editor

Android AppLink使用经历_第2张图片
这个是官网的介绍,很详细,这里做些补充
1.关于Host,这里一般就是填分享的地址,但是这里是不能填成http://www.recipe-app.com/recipe,这个地址还要用于后面的app link验证,域名和端口后面不能再添加路径,如果你的分享链接后面还有后续路径,可以向上面的②那样 填写到pathPrefix,
2.③标注的是你跳转到app,要启动的Activity,一般会在这里onCreate和onNewIntent去处理Uri,实现跳回app后的具体逻辑,具体示例可以在官方介绍看到app link
3.这个东西会帮助我们在AndroidManifest中我们选择启动的Activity标签下生成Intent过滤器,注意如果Activity标签下已经有了Intent-filter,不能直接在已有的intent-filter下填写这些信息,需要像这样另加个新的intent-filter

<intent-filter
                android:autoVerify="true"
                tools:targetApi="m">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="http"
                    android:host="域名"
                    android:pathPrefix="/子路径" />
                <data android:scheme="https" />
            </intent-filter>
//两个data标签,这个有点像proguradFlavor,这样app能同时处理
//http://host和https:host

接下来要生成Digital Asset Links文件 用于验证分享地址和app之间的关系,验证成功才能实现跳转app,不然还是需要弹出选择框,如果你说我不需要直接跳转到app,那到这一步就已经可以了,但是系统让你选浏览器打开网址还是app打开,体验不是太好。


标签①部分的数据可以自动被工具获取到,不需要我们设置,第一个就是我们前面填写的链接
标签②这个是是否支持web和app相互获取登录信息,更好的体验,不需要重复填写信息
标签③设置从哪里获取sha256签名指纹,这个我们通过keytool也可以获取到
然后点击4生成json文件,图上是开启了共享登录凭证json文件内容,如果没开启 一般就第一个{}的内容,sha256_cert_fingerprints就是我们app的sha256签名指纹

Note:然后保存文件,把文件给H5的同学,让他放在scheme://host/.well-known/xxx路径下 xxx就是我们的文件 注意,我们的分享链接可以是http,但是这个验证文件必须支持https访问

上传完成,大概20s左右就可以点击7 验证链接

1.如果报Content-Type不是application/json 检查下json文件放的路径是不是错误
2.验证失败,请等待一段时间再试

如果说我们的正式版签名不在本地jks文件中,比如③中 没有我们可选的选项 如果是jenkins打包,正式版可能就不在本地存放正式版签名文件
我们可以把保存的json文件直接修改他的sha256签名,改为正式版的再保存就行

部署好了就可以进行测试了,这个文件会在我们安装app的时候进行验证,验证通过,分享链接就可以直接跳转到app,但是我测试 安装的时候需要才行,不知道是否是内部要访问google相关的服务

总结一下
1.需要或针对国外环境可用,否则退化到Deep link
2.6.0及以上可用,否则退化到Deep link
3.AppLink需要在Intent过滤器添加参数,开启自动验证App和链接的关联,目标6.0,往前面翻有写完整的设置

<intent-filter android:autoVerify="true"
                tools:targetApi="m"></intent-filter>

如有疑问,欢迎提出,如有帮助,甚是欣慰

你可能感兴趣的:(Android,AppLink,App,Link,链接跳转,Android)