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

1.实现效果

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

2.实现方式

Android给我们提供了一个工具来生成这个链接 打开AndroidStudio -> Tools -> App Links Assistant

Android AppLink使用经历
先开始第一步 O测试你的自卑程度pen URL Mapping Egoogleditor

Android AppLink使用经历
这个是官网的介绍,很详细,这里做些补充

  1. 关于Host,这里一般就是填分享的地址,但是这里测试抑郁症的20道题是不能填成 www.recipe-app.com/recipe 这个地址还要用于后面的app link验证,域名和端口后面不能再添加路径,如果你的分享链接公司让员工下班发手机电量截图后面还有后续路径,可以向上面的②那样 填写到pathPrefix,
  2. ③标注的是你跳转到app,要启动的Activity,一般会在这里ogoogle中国nCreate和onNewIntent去处理Uri,实现跳回app后的具体逻辑,具体示例可以在官方介绍看到app link
  3. 这个东西会帮助工龄差一年工资差多少我们在AndroidManifehttp 500st中我们选择启动的Activity标签下生成Intent过滤器,注意如果Activity标签下已经有了Intent-filgoogle浏览器ter,不能直接在已有的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,不然还是需要弹出选择框,如果你说我不https域名需要直接跳转到app,那到这一步就已经可以了,但是系统让你选浏览器打开网址还是appgoogle服务框架打开,体验不是太好。

Android AppLink使用经历
标签①部分测试用例的数据可以自动被工具获取到,不需要我们设置,第一个就是我们前面填测试抑郁程度的问卷写的链接

标签②这个是是否支持web和app相互获取登录信息,更好的体验,不需要重复填写信息

标签③设置从哪里获取sha256签名指纹,这个我们通过keytool也可以获取到

然后点击4生成json文件,图上是开启了共享登录凭证json文件内容,如果没开启 一般就第一个{}的内容,sha256_cert_fingerprints就是我们app的sha256签名指纹

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

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

  1. 如果报https安全问题Content-Type不是application/json 检查下js测试抑郁程度的问卷on文件放的路径是不是错误
  2. 验证失败,请等待一段时间再试

如果说我工资超过5000怎么扣税们的正式版签名不在本地jks文件中,比如③中 没有我们可选的选项 如果是jenkins打包,正式版可能就不在本地存放正式版签名文件 我们可以把保存的jsgoogle服务框架on文件直接修改他的sha256签名,改为正式版的再Google保存就行

部署好了就可以进行测试了,这个文工龄越长退休金越多吗件会在我们安装app的时候进行验证,验证通过,分享链接就可以直接跳转到app,但是我测试 安装的时候需工龄越长退休金越多吗要fq才行,不知https和http的区别道是否是内部要访问google相关的服务

3.总结一下

  1. 需要fq或针对国外环境可用,否则退化到Deep link
  2. 6.0及以上可用,否则退化到Deep link
  3. AppLink需要在Intent过滤器添加参数,开启自动验工商银行证App和链接的关联,目标6.0,往前面翻有写完整的设置
<intent-filter android:autoVerify="true"
                tools:targetApi="m"></intent-filter>

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