android4.4.2link2sd,Android Studio 2.3 特性:生成Android App Links-程序员宅基地

技术标签: 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中开启。

d26d62a992f8

App Links Assistant

配置Intent filsters

首先打开URL匹配规则编辑器,配置基本的Scheme、Host等信息,并指定关联的Activity对这块不是很了解的同学可以点击App Manifest了解各个字段的含义以及优先级。

d26d62a992f8

URL Mapping

配置完毕后可查看已配置的映射的关系,并可以通过输入URL进行校验是否调通

d26d62a992f8

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,并将其上传至自己的站点。

d26d62a992f8

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能帮助我们高效管理当前的映射关系并进行测试。

参考文献

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39526185/article/details/117700865

智能推荐

最近网络上很多都在聊自动阅读,今天我们好好说说自动阅读到底怎么样-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏9次。一、首先要先看自身适不适合做阅读。能不能做首先要先看你手上有没有资源,什么资源?人!为什么这么说?真正想做阅读的人,他首先碰到最棘手的事就是,我想搞100台机子,一台机子就要1个微信,那我就要准备100个微信可以给我用,这么多,天呐,要哪里来?还有流量问题要怎么处理?绑定头条的手机号又要去哪里找?没错,在你还没接触阅读之前,如果你解决不了这些问题。如果你又省不得从市面上用昂贵的价格收购的话,那么我可以非常清楚的告诉你!你放弃吧!并不是每个人都适合做阅读。那么这样的问题该如何解决呢?方案一(此针对有资_自动阅读

springboot设置默认值_如何设置Spring Boot中@RequestBody反序列化实体的默认值?-程序员宅基地

文章浏览阅读6.5k次。可以的在web程序开发中,前端和服务器数据的传输方式常用的有两种,一种是以表单的形式提交,此时可以利用jquery的serialize()方法将表单内容转为a=1&b=2&c=3&d=4&e=5这样的格式传输过去,接收端则可以用javabean直接接收。还有一种方式是以json格式传输,接收时若直接用bean接收则接收不到,此时应该用@RequestBody方式,需..._@requestbody 默认值

QT 开发COM(ActiveX)组件基础介绍和方案验证

在创建组件对象时,客户程序调用COM库中的函数进行组件对象的创建工作,COM库的创建函数根据注册表的信息并调用组件程序的入口函数来创建组件对象。COM 既提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,所以,COM也可以是不同语言协作开发的一种标准。当另外的组件或者普通程序(即组件的客户程序)调用组件的功能时,它首先创建一个COM对象或者通过其他途径获得COM对象,然后通过该对象所实现的COM接口调用它所提供的服务。

【渝粤教育】广东开放大学 现代企业管理 形成性考核 (51)_下列说法错误的是 选择一项: a. 定量订货方式适合于品种数目少但占用资金大的b类-程序员宅基地

文章浏览阅读7.2k次。选择题题目:技术装备程度低、用人多、产品成本中活劳动消耗比重大的企业,属于() 企业。题目:市场渗透战略是由企业现有产品和( )结合而成的战略.题目:某牙膏厂原来只生产两面针药物牙膏,现在又增加牙刷生产,这属于( )。题目:在波士顿矩阵法中,( )类象限是指那些相对市场占有率较高和市场增长率较低的经营单位题目:以下哪种不是宏观环境分析考虑的因素( )题目:在《竞争战略》一书中提出了著名的五种竞争力量模型.题目:事业部制的缺点是与统一指挥原则相矛盾,容易产生职责不清的现象_下列说法错误的是 选择一项: a. 定量订货方式适合于品种数目少但占用资金大的b类

C/C++中CRT_c++ crt-程序员宅基地

文章浏览阅读4.1k次,点赞5次,收藏15次。本文转载自http://blog.sina.com.cn/s/blog_149e9d2ec0102wyvq.htmlCRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,可以..._c++ crt

C语言作业(四)-程序员宅基地

文章浏览阅读70次。【代码】C语言作业(四)

随便推点

Android -- 每日一问:介绍一下你经常浏览的 Android 技术网站_android 英文技术网站-程序员宅基地

文章浏览阅读1.3k次。每日一问:介绍一下你经常浏览的 Android 技术网站_android 英文技术网站

文本推理_CVPR 2020 | 细粒度文本视频跨模态检索-程序员宅基地

文章浏览阅读826次。本文介绍的是CVPR 2020的论文《Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning》(已开源),文章作者是中国人民大学博士生陈师哲同学,这项工作是陈师哲同学在澳大利亚阿德莱德大学吴琦老师组访问时所完成。作者|陈师哲编辑 | 贾 伟论文链接:http://arxiv.org/abs/2003...._细粒度跨模态检索

c#语言开发app,C#开发Android App--03--创建第一个app--Hello World-程序员宅基地

文章浏览阅读9.3k次,点赞8次,收藏39次。知识点:第一个app,显示Helloworld一、创建一个空项目创建项目启动 Visual Studio。单击“文件”>“新建”>“项目”以创建新项目 。在“新建项目” 对话框中,单击“Android 应用” 模板。将新项目命名为Hello(Phoneword是微软示例,本人太懒,不改了),然后单击“确定” : 在“新 Android 应用” 对话框中,依次单击“BlankA..._c#开发app

探索Camera2Demo:一款深入理解Android Camera2 API的开源示例项目-程序员宅基地

文章浏览阅读267次,点赞5次,收藏9次。探索Camera2Demo:一款深入理解Android Camera2 API的开源示例项目项目地址:https://gitcode.com/wangshengyang1996/Camera2Demo项目简介Camera2Demo 是一个由wangshengyang1996开发并维护的Android应用示例,旨在帮助开发者更好地理解和使用Android的Camera2 API。该项目通过提供..._android camera2 demo

iOS10 适配、Xcode8配置总结①-程序员宅基地

文章浏览阅读121次。2019独角兽企业重金招聘Python工程师标准>>> ...

微信API证书过期,获取API证书_微信 apiv3证书 过期-程序员宅基地

文章浏览阅读10w+次。在做微信如:(退款、企业红包、企业付款)提现这些操作的时候,微信返回(具体哪个字段我忘记了)的信息是:证书过期,那么就需要重新获取证书,证书的获取前提条件:1:你需要有微信商户平台的商户号(类似电话号码的数字),和商户名称(比如公司名称)2:按照官方说明文档进行相应操作即可(按照这个做就行了)http://kf.qq.com/faq/161222NneAJf161222U7fARv.h..._微信 apiv3证书 过期

推荐文章

热门文章

相关标签