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

智能推荐

Spring(五)Spring整合Hibernate-程序员宅基地

文章浏览阅读275次。Spring整合Hibernate_spring整合hibernate

Eclipse 常用快捷键及使用技巧-程序员宅基地

文章浏览阅读78次。做 java 开发的,经常会用 Eclipse 或者 MyEclise 集成开发环境,一些实用的 Eclipse 快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下 Eclipse 中常用到的快捷键和技巧。15 个 Eclipse 常用开发快捷键使用技巧1、alt+?或alt+/:自动补全代码或者提示代码这个是我最得意的快捷键组..._eclipese 使用技巧大全

42 SAP报错:作业类型 ACT001 没有为成本中心 1088 1200990001 设置(Activity type ATC001 not set up for cost center XXX)_作业类型 lab 没有为成本中心 ql99 1001 设置-程序员宅基地

文章浏览阅读567次,点赞6次,收藏11次。解决方案:CO模块使用前台事务码KP26维护活动类型价格,即可。业务操作:PP模块前台事务码CR02维护活动类型时,报错如上。报错原因:CO模块没有为活动类型进行价格维护。CO模块KP26维护作业类型价格完毕。2024年1月26日 写于上海。事务码KP26进入,_作业类型 lab 没有为成本中心 ql99 1001 设置

TortoiseGit解决TortoiseGitPlink要求输入密码-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏10次。解决TortoiseGitPlink要求输入密码_tortoisegitplink

什么是大端存储和小端存储-程序员宅基地

文章浏览阅读4.7k次,点赞2次,收藏5次。详细了解大端和小端的存储_大端存储和小端存储

【共读】企业信息安全建设与运维指南(一)_信息安全运营服务实施指南研究-程序员宅基地

文章浏览阅读6.3k次,点赞5次,收藏49次。一、从零开始建设企业信息安全系统:企业信息安全体系分为:信息安全技术体系和信息安全管理体系 信息安全技术体系: 两个层面: 1.需建设安全相关基础设施和系统,以具备解决相关安全问题的能力。 2.需具备安全运营能力,只有正确部署和使用设备,才能真正保障信息安全。 信息安全管理体系: 两个层面: 1.具备信息安全相关的制度、规范、流程及策略。 2.具..._信息安全运营服务实施指南研究

随便推点

java漏洞提权_CVE-2018-3211:Java Usage Tracker本地提权漏洞分析-程序员宅基地

文章浏览阅读170次。一、前言我们发现Java Usage Tracker中存在设计缺陷(或者脆弱点),攻击者可以利用该缺陷创建任意文件、注入攻击者指定的参数以及提升本地权限。这些攻击手段也能组合使用实现权限提升,以便访问受影响系统中其他应用或者用户不能访问的某些保护资源。我们通过Zero Day Initiative与Oracle合作修复了这个漏洞,厂商已经在10月份补丁中推出了安全更新。因此,用户以及企业应当尽快安..._java防范代码问题的提权脱库

关系型数据库(Sql)和非关系型数据库(NoSql)区别_sql关系 非关系-程序员宅基地

文章浏览阅读1.8k次。Sql与NoSql的区别Sql与NoSql的区别数据库关系型数据库非关系型数据库Sql与NoSql的区别数据库1.简单来说,就是存放各种数据的一个仓库,也就是一些数据按照某种模型存放到存储器的一个数据集合。简称DB,DataBase2.那么,数据有了,就需要管理,用来操纵和管理数据的软件就是数据管理系统 简称DBMS,DataBase Managent System3.那么 把上面这两个放到一起,也就是带有数据库并配置了管理系统的计算机系统 就是数据库系统 简称DBS,DataBase Syst_sql关系 非关系

MATLAB实现imrotate函数_imrotate函数matlab-程序员宅基地

文章浏览阅读5.1k次,点赞2次,收藏11次。编写算法实现图像绕中心点旋转功能先找到四个顶点旋转后的位置,然后求出新图像的大小找到旋转后的图像对应的原图像的位置,将原图像的颜色属性赋给相应位置的新图像(旋转思想为先将图像中心点移到坐标原点,然后进行旋转,最后再将坐标值换为实际的坐标值进行像素颜色属性的赋值)a=input('Enter the picture address:');b=input('Enter the angle:');R..._imrotate函数matlab

upstream server temporarily disabled while connecting to upstream(记录bug)-程序员宅基地

文章浏览阅读1.2k次。nginx连接上游服务器时,上游服务器暂时禁用问题解决_upstream server temporarily disabled while connecting to upstream

5.5浮点数运算方法和浮点数运算器_浮点运算方法和浮点运算器-程序员宅基地

文章浏览阅读1k次。必须阶码一致才可以进行浮点数运算。_浮点运算方法和浮点运算器

【教程】CDQ套CDQ——四维偏序问题【转载】-程序员宅基地

文章浏览阅读128次。转自前言 上一篇文章已经介绍了简单的CDQ分治,包括经典的二维偏序和三维偏序问题,还有带修改和查询的二维/三维偏序问题。本文讲介绍多重CDQ分治的嵌套,即多维偏序问题。四维偏序问题给定N(N<=20000)个有序四元组(a,b,c,d),求对于每一个四元组(a,b,c,d),有多少个四元组(a2,b2,c2,d2)满足a2<a &..._cdq处理四维偏序

推荐文章

热门文章

相关标签