HTML记述的内容增加。
当中必须的内容仅scheme,没有其它内容app也能启动。
※注意事项:intent-filter的内容【android.intent.action.MAIN】和 【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。
所以。假设增加了同一个Activity,请按下面这样做。否则会导致应用图标在桌面消失等问题。
接下来在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");
}
}
首先。是UC浏览器。假设你使用了自己的scheme。而不是http的话,uc会默认在你的scheme前面加入http://。
这太坑爹了。
其它浏览器没看是不是相同的情况。发现这个问题后我就试着把自己的scheme换成http。然后满怀期待的又跑了一遍。结果还是坑爹了。所以我想会不会是第三方浏览器对url做了处理。到这里,我也无可奈何了。我測试了UC,猎豹,欧朋。这3个都不支持。
系统自带的和谷歌浏览器是支持的,可是最新版的谷歌浏览器好像也不支持了,firefox眼下还支持。
官方的文档有解释:http://developer.android.com/guide/topics/manifest/data-element.html
scheme://host:port/path or pathPrefix or pathPattern
这里面定义的schema+host+port+(path or pathPrefix or pathPattern)能拼凑出一个http链接。包括这个filter的Activity,能处理这个http链接。
执行结果应该是,有安装该应用的话,会打开该应用,假设没有会跳转到指向的页面。在HTML页面里面能够自己主动重定向到下载链接。这个就能自己主动下载。