简单记录下浏览器启动app
浏览器格式如下:
<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>
scheme:判别启动的App。 ※详细后述
host:适当记述
path:传值时必须的key ※没有也可以
query:获取值的Key和Value ※没有也可以
<a href="myapp://jp.app/openwith?name=alien&age=18">启动应用程序</a>
最好在LAUNCHER页面启动,要不app未打开时候,调用非LAUNCHER页面,返回时候页面需要处理
※注意事项:intent-filter的内容【android.intent.action.MAIN】和【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。
所以,如果加入了同一个Activity,请按以下这样做,否则会导致应用图标在桌面消失等问题。
<activity
android:name=".welcome.WelcomeActivity"
android:screenOrientation="portrait"
android:theme="@style/TransparentStatusBarTheme">
<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:host="jp.app
android:pathPrefix="/openwith"
android:scheme="alienapp" />
</intent-filter>
</activity>
接下来在Activity中需要取值的地方添加以下代码:
/**
* 检查是否浏览器传递数据
*/
private void getData() {
Intent intent = getIntent();
if (intent != null) {
String action = intent.getAction();
if (Intent.ACTION_VIEW.equals(action)) {
Uri uri = intent.getData();
if (uri != null) {
String name = uri.getQueryParameter("name");
String age= uri.getQueryParameter("age");
}
}
}
}
获取数据后就可以根据业务进行处理了,Over~