在很多时候会使用到在网页中调起App,并且传值。
其实很简单,只要在调起的App的目标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:host="XXXXX.com" android:scheme="YYY" android:pathPrefix="/zzz"/>
</intent-filter>
这里有一点要注意,个人总结出来的结论,如果你要调起的页面是是这个App的启动页面的话,可能会导致这个App的图标找不到,具体什么原因我也不清楚,但是在使用的时候发生了这种情况。
- scheme:判别启动的App
- host:适当记述
- pathPrefix:传值时必须的key ※没有也可以
- query:获取值的Key和Value ※没有也可以
而且在这次使用调起App的时候我用到了传值,并且做出相应的判断,所以我就新建了一个页面,使之作为调起的页面,然后进行相应的操作,就完全没有问题了。
配置文件中的代码写过了,就可以在Activity中获取传递的值了,其代码如下:
Uri uri = getIntent().getData();
String type= uri.getQueryParameter("type");
String id= uri.getQueryParameter("id");
那作为接收端是这样的代码,在网页中就可以使用以下代码进行调起:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="YYY://XXXXX.com/zzz?type=video&id=1274">打开app</a><br/>
</body>
</html>
如果需要传值就赋值,如果不需要传值就直接
herf="YYY://XXXXX.com/"
其中这里的href和scheme需要保持一致;
以上。