<
activity
android:name
=
".TestActivity"
>
<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
=
"mywebsite.com"
android:pathPrefix
=
"/openApp"
android:scheme
=
"http"
/>
</intent-filter>
</
activity
>
<
data
android:host=
"mywebsite.com"
android:pathPrefix=
"/openApp"
android:scheme=
"myapp"
/>
此时,对应的链接地址为 myapp://mywebsite.com/openApp . 因为手机本地只有我们自己的程序能够识别 myapp 这个协议,所以会直接打开APP。然而依旧存在问题:
(1)如果把该链接放在网页上,希望希望用户点击链接后打开APP,那么上述做法是没有问题的。例如网页中添加如下代码即可:
<a href='myapp://mywebsite.com/openApp'>点击打开APP</a>
(2)但是,如果把链接放在短信中就不行了。因为 myapp 这个协议系统的短信程序也不能识别,所以不会标记为链接样式,也就是说用户不能直接点击。
<meta http-equiv="Refresh" content="0;url=myapp://mywebsite.com/openApp?name=zhangsan&age=20" />
用户在短信中点击后会使用浏览器打开链接,然后自动打开自己的APP。
4.最后,在TestActivity中可以获取链接url传递的参数:
Intent intent = getIntent()
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"
)
Toast
.makeText
(this,
"name="
+ name +
",age="
+ age, Toast
.LENGTH
_SHORT)
.show
()
}
}
本篇完,欢迎讨论。