直接通过浏览器打开Android App 应用

点击浏览器中的URL链接,启动特定的App。

首先做成HTML的页面,页面内容格式例如以下:

<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 

这一句就能够了。

当然上面的 在标准形式,对于正常情况而言是OK的。可是每一个浏览器有自己的特定义设置。

各个项目含义例如以下所看到的:

scheme:判别启动的App。 ※具体后述

host:适当记述

path:传值时必须的key     ※没有也能够

query:获取值的Key和Value  ※没有也能够

作为測试例如以下:

<a href="myapp://jp.app/openwith?

name=zhangsan&age=26">启动应用程序</a>

首先在AndroidManifest.xml的MAIN Activity下追加下面内容。(启动Activity时给予)
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>
HTML记述的内容增加<data …/>。

当中必须的内容仅scheme,没有其它内容app也能启动。
※注意事项:intent-filter的内容【android.intent.action.MAIN】和 【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。                 所以。假设增加了同一个Activity,请按下面这样做。否则会导致应用图标在桌面消失等问题。

<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>


接下来在Activity中须要取值的地方加入下面代码,我是直接写在OnCreate函数里的:
Intent i_getvalue = getIntent();  String action = i_getvalue.getAction();    if(Intent.ACTION_VIEW.equals(action)){      Uri uri = i_getvalue.getData();      if(uri != null){          String name = uri.getQueryParameter("name");          String age= uri.getQueryParameter("age");      }  }

首先。是UC浏览器。假设你使用了自己的scheme。而不是http的话,uc会默认在你的scheme前面加入http://。

这太坑爹了。

其它浏览器没看是不是相同的情况。发现这个问题后我就试着把自己的scheme换成http。然后满怀期待的又跑了一遍。结果还是坑爹了。所以我想会不会是第三方浏览器对url做了处理。到这里,我也无可奈何了。我測试了UC,猎豹,欧朋。这3个都不支持。

系统自带的和谷歌浏览器是支持的,可是最新版的谷歌浏览器好像也不支持了,firefox眼下还支持。
官方的文档有解释:http://developer.android.com/guide/topics/manifest/data-element.html

scheme://host:port/path or pathPrefix or pathPattern

这里面定义的schema+host+port+(path or pathPrefix or pathPattern)能拼凑出一个http链接。包括这个filter的Activity,能处理这个http链接。
执行结果应该是,有安装该应用的话,会打开该应用,假设没有会跳转到指向的页面。在HTML页面里面能够自己主动重定向到下载链接。这个就能自己主动下载。



时间: 2025-01-12 12:47:44

直接通过浏览器打开Android App 应用的相关文章

如何通过网页打开Android APP

如何通过网页打开Android APP 1.首先在编写一个简单的html页面 html页面中只有一个简单的连接,代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> &

通过浏览器直接打开Android App 应用程序

点击浏览器中的URL链接,启动特定的App. 首先做成HTML的页面,页面内容格式如下: <a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 这一句就可以了. 当然上面的 在标准形式,对于正常情况而言是OK的,但是每个浏览器有自己的特定义设置. 各个项目含义如下所示: scheme:判别启动的App. ※详细后述 host:适当记述 path:传值时必须的key     ※没有也可以 query:获取值的K

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器. 如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打开连接. Uri uri = Uri.parse("https://www.baidu.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri);

推荐下载App,如果本地安装则直接打开本地App(Android/IOS)

推荐下载App,如果本地安装则直接打开本地App(Android/IOS) - 纵观现在每家移动网站,打开首页的时候,都有各种各样的形式来提示你下载自身的移动App(Android/IOS),这是做移动客户端产品的一个很好地引流的手段.当然各家引流下载的交互和视觉各不相同,有的是完全“强奸”用户,有的是完全取悦用户.但是最终的形式就是你点击一个按钮之后,可以去下载对应的App(Android直接下载对应的Apk文件,IOS会跳转到App store的对应地址). 之前开发这个需求的时候,就是很简

通过浏览器直接打开Android应用程序

需求 通过手机浏览器直接打开Android应用程序.假设本地已经安装了指定Android应用,就直接打开它:假设没有安装,则直接下载该应用的安装文件(也能够跳转到下载页面). 实现效果 假设手机上已经安装了App.则直接打开.假设没有安装,则開始下载. 实现方式 1.为Android应用的启动Activity设置一个Schema,例如以下: <data android:host="splash" android:scheme="huiyy" /> 2.用

更新:通过浏览器直接打开Android应用程序

之前写过一篇blog,介绍如何通过点击浏览器中的链接,直接打开本地Android App. 实现方式不太完美,最近看了微博.京东的手机版网页,感觉他们的实现方式很不错,研究了一下,实现以下效果: 如果本地已经安装了指定Android应用,就直接打开它:如果没有安装,则直接下载该应用的安装文件(也可以跳转到下载页面). 实现方式 1.为Android应用的启动Activity设置一个Schema,如下: <data android:host="splash" android:sch

给你的移动网站加点料:推荐下载App,如果本地安装则直接打开本地App(Android/IOS)

纵观现在每家移动网站,打开首页的时候,都有各种各样的形式来提示你下载自身的移动App(Android/IOS),这是做移动客户端产品的一个很好地引流的手段.当然各家引流下载的交互和视觉各不相同,有的是完全“强奸”用户,有的是完全取悦用户.但是最终的形式就是你点击一个按钮之后,可以去下载对应的App(Android直接下载对应的Apk文件,IOS会跳转到App store的对应地址). 之前开发这个需求的时候,就是很简单的针对用户访问的useragent进行判断,如果android设备,给出的是a

通过html页面打开Android本地的app

http://www.cnblogs.com/yejiurui/p/3413796.html 一.通过html页面打开Android本地的app 1.首先在编写一个简单的html页面 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title>

Android APP代码拨打电话、打开手机分享功能等隐式意图

Android APP拨打电话: Intent intent=new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+110)); startActivity(intent); } Android APP打开电话薄: Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); startActivity(intent); Android