您的位置:首页 > 移动开发

broswer 调起APP

2016-04-22 17:17 204 查看
=====================Test html ============================

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> New Document </title>

<meta name="Generator" content="EditPlus">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="">

</head>

<body>

<a href="gc://com.test.dqxondgame/parameters/here">click me open local apk</a><br/>

<!-- 對應 AndroidManifest.xml

<data android:host="com.test.dqxondgame"

android:scheme="gc" />

parameters/here 可選性參數-->

<a href="gc://www.baidu.com/parameters/here">click me open local apk</a><br/>

<a href="https://play.google.com/store/apps/details?id=com.test.gc.webview.cmg">click me open goolge play apk</a>

123

</body>

</html>

///////////////////////APK Android AndroidManifest.xml /////////////////////

<activity

android:name="com.gc.activity.MainActivity"

android:configChanges="orientation|keyboard|keyboardHidden|locale"

android:label="@string/app_name"

android:screenOrientation="landscape" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity

android:name="com.gc.activity.SonMainActivity"

android:configChanges="orientation|keyboard|keyboardHidden|locale"

android:label="@string/app_name"

android:screenOrientation="landscape" >

<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:host="com.test.dqxondgame"

android:scheme="gc" />

</intent-filter>

</activity>

、-----------------SonMainActivity class-----------------------

package com.gc.activity;

import android.os.Bundle;

public class SonMainActivity extends MainActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

}

}

-----------------------传参数sameple------------------------------------

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

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

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

这一句就可以了。

各个项目含义如下所示:

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

host:适当记述

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

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

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

<a href="myapp://jp.app/openwith?name=zhangsan&age=26">启动应用程序</a>

接下来是Android端。

首先在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");

}

}

这样就能获取到URL传递过来的值了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: