苏飞论坛

标题: 手机浏览器启动App的方法,Html启动App的方法 [打印本页]

作者: 站长苏飞    时间: 2014-6-11 16:38
标题: 手机浏览器启动App的方法,Html启动App的方法

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

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

[C#] 纯文本查看 复制代码
<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 

这一句就可以了。


各个项目含义如下所示:

scheme:判别启动的App。 ※详细后述

host:适当记述

path:传值时必须的key     ※没有也可以

query:获取值的Key和Value  ※没有也可以


作为测试好好写了一下,如下:

[C#] 纯文本查看 复制代码
<a href="myapp://jp.app/openwith?name=zhangsan&age=26">启动应用程序</a>  

接下来是Android端。
首先在AndroidManifest.xml的MAIN Activity下追加以下内容。(启动Activity时给予)

※必须添加项

[C#] 纯文本查看 复制代码
<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,请按以下这样做,否则会导致应用图标在桌面消失等问题。

[C#] 纯文本查看 复制代码
<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函数里的:

[C#] 纯文本查看 复制代码
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");  
    }  
}  



作者: xjwebs    时间: 2014-7-6 01:16
不错,还有app网页打电话、发短信的等等之类的。
飞哥也开始搞java了
作者: 站长苏飞    时间: 2014-7-6 13:14
xjwebs 发表于 2014-7-6 01:16
不错,还有app网页打电话、发短信的等等之类的。
飞哥也开始搞java了

你那里看到我写有Java了,这还是JS和Html
作者: xjwebs    时间: 2014-7-7 00:26
站长苏飞 发表于 2014-7-6 13:14
你那里看到我写有Java了,这还是JS和Html

看错标题了,以为是从一个app中启动另一个app,像截图分享到QQ/微信那样,启动了就跳过去,没启动就启动再跳过去
作者: 安卓界    时间: 2015-3-31 12:56
你好,能否在一个网页内,分成两个模块,一部分是手机内已经下载好的本地应用,一部分是网站内容

或者说,在网页内设定几个常用的软件超链接启用App




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4