Android--通过网页打开APP并传值详解
转自:http://blog.****.net/HuoHao_Blogs/article/details/72461107?locationNum=2&fps=1
本来这篇博客应该写Git的,但是由于最近项目比较忙,Git的内容还没有整理完(因为还有GitLab以及Github的内容),所以先写了这片博客总结以下比较零碎的东西。现在正在做商城类四网合一开发,所以从网页通过连接点击打开App以及从网页传数据到APP便成为必须,因为刚做过在加上内容比较少,所以先做一下总结,以便自己以后做复习,也可以为需要的人提供一些帮助。能力有限,欢迎各位大神多提不同意见进行交流。
在使用网页版京东时可以看到就有此功能的实现,而本篇文章主要介绍通过网页点击连接如果存在此APP则打开,不存在则下载此APP,而在Google的官方文档中也有相关介绍,该文档给出了两种从浏览器网页打开APP的方式:
第一种:用户自定义的URI scheme (Custom URI scheme) 第二种:使用“intent”语法(Intent_based URI)
Google的官方文档地址连接:https://developer.chrome.com/multidevice/android/intents
好了,废话不多说进入主题,下面我们使用第一种方式实现该功能。
使用Custom Scheme URI打开APP
此红色部分(自定义Uri)引用的博客是:http://blog.****.net/buptlzx/article/details/9837137
就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下:
scheme://host:port/path
举个实际的例子:
content://com.example.project:200/folder/subfolder/etc ?arg0=1&arg1=2
\---------/ \---------------------------/ \---/ \--------------------------/ \--------------------------/(query我们要传的值)
scheme host port path (我们要传的值如果是传多个值使用&)
\--------------------------------/
authority
1,我们先写一个简单的html文件,使用超链接的方式添加自定义的uri(因为现在自己也正在学习h5,所以能写的东西不多,凑合者看),我写的比较多,uri可以简单些成:<a href="a://b.com/?t1=k&t2=0">
2, 然后需要在想要打开的App的AndroidManifest.xml文件中添加过滤器intent-filter,如下图所示:
要获得html页面传过来的值我们需要在Activity中添加下面的代码:
然后使用手机浏览器打开html文件就可以打开手机上的APP并获取从html页面传过来的值:
3,实现通过网页打开APP如果手机中没有此APP就去下载:
至于这个功能的实现我主要参考了一篇文章,作者讲的非常详细了,有需要的可以自己去看一下。
地址奉上:https://my.oschina.net/liucundong/blog/354029
时间有限(最近项目比较忙) 至于第二种方式实现该功能以及实现的风险可以参考另一篇博客,以后有时间了再将其他的内容补上。
博客地址:http://blog.****.net/alimobilesecurity/article/details/51209990