技术标签: android4.4.2link2sd
移动应用开发时常遇到应用跳转、h5唤起原生页面等使用场景,所以一个健壮的应用需要具备路由的能力。常见的操作方法需要在manifest中针对每个页面进行配置,设想应用有大量的页面那配置工作岂不是费时费力,所以我们便来一起看看Android Studio 2.3给我们带来了什么便利
概览及使用
App Links是Android M以上的特有功能,即实现了auto-verify支持用户点击一个链接即可唤起APP,而不用像以往版本中需要点击一个选择框列表。为了使自己的应用支持App Links,我们常需要以下三个步骤:
在manifest中创建Intent filter
在Activity中编写对应的代码逻辑处理收到的url links
通过配置证书文件,关联网页和应用
Android Studio 2.3及以上版本中提供了App Links Assistant协助开发者进行快速配置,该功能可在tools > App Links Assistant中开启。
App Links Assistant
配置Intent filsters
首先打开URL匹配规则编辑器,配置基本的Scheme、Host等信息,并指定关联的Activity对这块不是很了解的同学可以点击App Manifest了解各个字段的含义以及优先级。
URL Mapping
配置完毕后可查看已配置的映射的关系,并可以通过输入URL进行校验是否调通
URL-to-Activity
选择Activity
配置好mapping后,点击Select Activity选择上述配置好的Activity可自动生成以下代码。变量appLinkData以Uri的形式存储了进行传递的数据,针对具体页面开发者可编写特定的处理逻辑。
// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
关联应用
前两步已经使我们的应用具备了URL支持,在最后一步中我们将生成站点的配置文件,使其能够唤起我们的应用。此处需要根据个人用途选择Signing config或keystore并选择debug/release类型,点击生成的配置文件为assetlinks.json,并将其上传至自己的站点。
Associate Website
根据官方文档,特别注意的是系统识别Links需要通过https协议,故我们需要确保assetlinks.json可以通过https链接,无论我们的应用是否在Intent-filter中包含了https
通过配置assetlinks.json我们可以使站点具备唤起单一APP或者多个APP的能力,文件中使用了以下字段来关联app:
package_name 即manifest中定义的包名
sha256_cert_fingerprints 即应用的sha256指纹证书
而指纹证书可以调用命令行进行生成
$ keytool -list -v -keystore my-release-key.keystore
若需要关联多个app,可以参照下面的格式进行配置
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "example.com.puppies.app",
"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"]
}
},
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "example.com.monkeys.app",
"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"]
}
}]
最后点击Test App Links可以在设备或模拟器上进行测试。
后记
缺陷
使用App Links能为开发者带来福利,但目前仍然有几个不可忽视的缺陷:
当app配置好了对App Links的支持之后,只有运行在Android M上的用户才能直接体会到这项好处
开发者需要维护与App相关联的站点,并支持上传认证文件,可能造成更大的财力精力开销
扩展
利用App Links Assistant我们可以快速配置应用全局路由的支持,由于manifest中已存在url与activity的映射关系,我们可以基于Intent和PackageManager设计一个简单的路由框架。比起手动在manifest增删,App Links Assistant能帮助我们高效管理当前的映射关系并进行测试。
参考文献
文章浏览阅读275次。Spring整合Hibernate_spring整合hibernate
文章浏览阅读78次。做 java 开发的,经常会用 Eclipse 或者 MyEclise 集成开发环境,一些实用的 Eclipse 快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下 Eclipse 中常用到的快捷键和技巧。15 个 Eclipse 常用开发快捷键使用技巧1、alt+?或alt+/:自动补全代码或者提示代码这个是我最得意的快捷键组..._eclipese 使用技巧大全
文章浏览阅读567次,点赞6次,收藏11次。解决方案:CO模块使用前台事务码KP26维护活动类型价格,即可。业务操作:PP模块前台事务码CR02维护活动类型时,报错如上。报错原因:CO模块没有为活动类型进行价格维护。CO模块KP26维护作业类型价格完毕。2024年1月26日 写于上海。事务码KP26进入,_作业类型 lab 没有为成本中心 ql99 1001 设置
文章浏览阅读3.2k次,点赞4次,收藏10次。解决TortoiseGitPlink要求输入密码_tortoisegitplink
文章浏览阅读4.7k次,点赞2次,收藏5次。详细了解大端和小端的存储_大端存储和小端存储
文章浏览阅读6.3k次,点赞5次,收藏49次。一、从零开始建设企业信息安全系统:企业信息安全体系分为:信息安全技术体系和信息安全管理体系 信息安全技术体系: 两个层面: 1.需建设安全相关基础设施和系统,以具备解决相关安全问题的能力。 2.需具备安全运营能力,只有正确部署和使用设备,才能真正保障信息安全。 信息安全管理体系: 两个层面: 1.具备信息安全相关的制度、规范、流程及策略。 2.具..._信息安全运营服务实施指南研究
文章浏览阅读170次。一、前言我们发现Java Usage Tracker中存在设计缺陷(或者脆弱点),攻击者可以利用该缺陷创建任意文件、注入攻击者指定的参数以及提升本地权限。这些攻击手段也能组合使用实现权限提升,以便访问受影响系统中其他应用或者用户不能访问的某些保护资源。我们通过Zero Day Initiative与Oracle合作修复了这个漏洞,厂商已经在10月份补丁中推出了安全更新。因此,用户以及企业应当尽快安..._java防范代码问题的提权脱库
文章浏览阅读1.8k次。Sql与NoSql的区别Sql与NoSql的区别数据库关系型数据库非关系型数据库Sql与NoSql的区别数据库1.简单来说,就是存放各种数据的一个仓库,也就是一些数据按照某种模型存放到存储器的一个数据集合。简称DB,DataBase2.那么,数据有了,就需要管理,用来操纵和管理数据的软件就是数据管理系统 简称DBMS,DataBase Managent System3.那么 把上面这两个放到一起,也就是带有数据库并配置了管理系统的计算机系统 就是数据库系统 简称DBS,DataBase Syst_sql关系 非关系
文章浏览阅读5.1k次,点赞2次,收藏11次。编写算法实现图像绕中心点旋转功能先找到四个顶点旋转后的位置,然后求出新图像的大小找到旋转后的图像对应的原图像的位置,将原图像的颜色属性赋给相应位置的新图像(旋转思想为先将图像中心点移到坐标原点,然后进行旋转,最后再将坐标值换为实际的坐标值进行像素颜色属性的赋值)a=input('Enter the picture address:');b=input('Enter the angle:');R..._imrotate函数matlab
文章浏览阅读1.2k次。nginx连接上游服务器时,上游服务器暂时禁用问题解决_upstream server temporarily disabled while connecting to upstream
文章浏览阅读1k次。必须阶码一致才可以进行浮点数运算。_浮点运算方法和浮点运算器
文章浏览阅读128次。转自前言 上一篇文章已经介绍了简单的CDQ分治,包括经典的二维偏序和三维偏序问题,还有带修改和查询的二维/三维偏序问题。本文讲介绍多重CDQ分治的嵌套,即多维偏序问题。四维偏序问题给定N(N<=20000)个有序四元组(a,b,c,d),求对于每一个四元组(a,b,c,d),有多少个四元组(a2,b2,c2,d2)满足a2<a &..._cdq处理四维偏序