首页 > 移动平台 > 详细

Android应用安全开发之浅谈网页打开APP

时间:2016-04-23 02:13:21      阅读:244      评论:0      收藏:0      [点我收藏+]

Android应用安全开发之浅谈网页打开APP

一、网页打开APP简介

Android有一个特性,可以通过点击网页内的某个链接打开APP,或者在其他APP中通过点击某个链接打开另外一个APP(AppLink),一些用户量比较大的APP,已经通过发布其AppLink SDK,开发者需要申请相应的资格,配置相关内容才能使用。这些都是通过用户自定义的URI scheme实现的,不过背后还是Android的Intent机制。Google的官方文档《Android Intents with Chrome》一文,介绍了在Android Chrome浏览器中网页打开APP的两种方法,一种是用户自定义的URI scheme(Custom URI scheme),另一种是“intent:”语法(Intent-based URI)。

?

第一种用户自定义的URI scheme形式如下:

bubuko.com,布布扣

?

第二种的Intent-based URI的语法形式如下:

bubuko.com,布布扣

因为第二种形式大体是第一种形式的特例,所以很多文章又将第二种形式叫Intent Scheme URL,但是在Google的官方文档并没有这样的说法。

?

注意:使用Custom URI scheme给APP传递数据,只能使用相关参数来传递数据,不能想当然的使用scheme://host#intent;参数;end的形式来构造传给APP的intent数据。详见3.1节的说明。

此外,还必须在APP的Androidmanifest文件中配置相关的选项才能产生网页打开APP的效果,具体在下面讲。

?

二、Custom Scheme URI打开APP

2.1 基本用法

需求:使用网页打开一个APP,并通过URL的参数给APP传递一些数据。?

如自定义的Scheme为:

bubuko.com,布布扣

注意:?uri要用UTF-8编码和URI编码。

?

网页端的写法如下:

bubuko.com,布布扣

?

APP端接收来自网页信息的Activity,要在Androidmanifest.xml文件中Activity的intent-filter中声明相应action、category和data的scheme等。?

如在MainActivity中接收从网页来的信息,其在AndroidManifest.xml中的内容如下:

bubuko.com,布布扣

?

在MainActivity中接收intent并且获取相应参数的代码:

bubuko.com,布布扣

另外还有以下几个API来获取相关信息:?

getIntent().getScheme(); //获得Scheme名称?

getIntent().getDataString(); //获得Uri全部路径?

getIntent().getHost(); //获得host

Android应用安全开发之浅谈网页打开APP

原文:http://201603231859.iteye.com/blog/2292917

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!