android实现通过
浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据方法/步骤为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码!(ps:还是先剧透下吧,第三方大部分浏览器无法成功。)点击浏览器中的URL链接,启动特定的App。首先做成HTML的页面,页面
内容格式如下:<a href="[scheme]://[host]/[path][query]">启动应用程序</a> 这一句就可以了。各个项目含义如下所示:scheme:判别启动的App。 ※详细后述host:适当记述path:传值时必须的key ※没有也可以query:获取值的Key和Value ※没有也可以作为测试好好写了一下,如下:<a href="myapp://jpapp/openwithname=zhangsan&age=26">启动应用程序</a> 接下来是Android端。首先在AndroidManifestxml的MAIN Activity下追加以下内容。(启动Activity时给予)※必须添加项<intent-filter> <action android:name="androidintentactionVIEW"/> <category android:name="androidintentcategoryDEFAULT" /> <category android:name="androidintentcategoryBROWSABLE" /> <data android:scheme="myapp" android:host="jpapp" android:pathPrefix="/openwith"/> </intent-filter>HTML记述的内容加入<data …/>。其中必须的内容仅scheme,没有其他内容app也能启动。※注意事项:intent-filter的内容androidintentactionMAIN和 androidintentcategoryLAUNCHER这2个,不能与这次追加的内容混合。 所以,如果加入了同一个Activity,请按以下这样做,否则会导致应用图标在桌面消失等问题。复制代码<intent-filter> <action android:name="androidintentactionMAIN"/> <category android:name="androidintentcategoryLAUNCHER" /> </intent-filter> <intent-filter> <action android:name="androidintentactionVIEW"/> <category android:name="androidintentcategoryDEFAULT" /> <category android:name="androidintentcategoryBROWSABLE" /> <data android:scheme="myapp" android:host="jpapp" android:pathPrefix="/openwith"/> </intent-filter> 复制代码这样的话,没有问题。接下来在Activity中需要取值的地方添加以下代码,
我是直接写在OnCreate函数里的:Intent i_getvalue = getIntent(); String action = i_getvaluegetAction(); if(IntentACTION_VIEWequals(action)){ Uri uri = i_getvaluegetData(); if(uri != null){ String name = urigetQueryParameter("name"); String age= urigetQueryParameter("age"); } }这样就能获取到URL传递过来的值了。——————————————————————————————————我是分割线————————————————————————————————————代码copy完了,是不是很惊奇的发现用浏览器输入myapp://jpapp/openwithname=zhangsan&age=26是不是404,打不开?楼主你这不是骗人么!楼主你个混蛋啊。客官,稍安勿躁啊,你看看你用的浏览器是什么?UC,猎豹,欧朋?放弃吧,试试系统自带浏览器或者谷歌浏览器吧。肯定能成功的,不能成功的话再来坑我。哈哈。——————————————————————————————————我是分割线————————————————————————————————————突然觉得好悲哀,好不容易get了这个技能,却不能被第三方浏览器使用。在这个android浏览器大部分被第三方占据着的时代不得不说是个悲剧啊。接下来还是说说为什么第三方浏览器不能成功吧。首先,我发现的是UC浏览器,如果你使用了自己的scheme,而不是>最近在使用Android官方提供的paging组件进行分页功能的时候,遇到了一个问题。首先,paging每次显示一页的数据,下滑到一定程度以后发送第二次取数据的api,以此达到分页的效果。
当我们第一次显示成功以后,断开网络,然后划到底部。这个时候,发送API失败了。重新链接以后,再往下滑动,也不会有任何反应。这显然跟我们实际体验是有区别的。下面说一下具体的方法。
具体例子可以参考谷歌github上 例子
这里贴一个关于描述paging使用的文章,我觉得非常好,可以看一下,我这里不详细说了。 >mWebViewsetWebViewClient(new WebViewClient(){
// 这个方法在用户试图点开页面上的某个链接时被调用
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url!=null) {
// 如果想继续加载目标页面则调用下面的语句
// viewloadUrl(url);
// 如果不想那url就是目标网址,如果想获取目标网页的内容那你可以用>一般通过转发给好友就会自动跳到这个界面
然后留在微信就可以了
你的采纳是我前进的动力!
记得好评和采纳,答题不易,互相帮助,
手机提问的朋友在客户端右上角评价点满意即可
如果你认可我的回答,请及时点击采纳为满意回答按钮!
评论列表(0条)