登入手机浏览器打开应用宝收集应用宝

315可信应用白名单
更新内容:
微信公众账号:应用宝46113人阅读
Android(142)
$*********************************************************************************************$博主推荐:风萧兮兮易水寒,“天真”一去兮不复还。如何找到天真的那份快乐。小编倾力推荐app:&天真无谐下载方式:豌豆荚,应用宝,360手机助手,百度手机助手,安卓,91市场搜索:天真无谐关注我们:$*********************************************************************************************$今天老大给我提了一个需求叫我调研一下,他已经测试了IOS平台上是可以的,需求很简单就是在系统浏览器中通过输入一个uri就可以打开相应的app。比如你在IOS中的系统浏览器中输入:tel://123,就会跳到拨打电话页面而且拨打号码是123,像这样的命令,老大他用了小米手机测试了一下,发现可以的,所以他就以为Android的也是可以的,但是当我用三星和htc手机测试发现不行,这时候老大就纠结了,但是我个人认为,我们都知道小米手机是模仿IOS的,没想到模仿的这么想。所以老大就叫我去调研,我查阅了资料之后,找到了解决办法如下先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码!(ps:还是先剧透下吧,第三方大部分浏览器无法成功。)点击浏览器中的URL链接,启动特定的App。首先做成HTML的页面,页面内容格式如下:&a href=&[scheme]://[host]/[path]?[query]&&启动应用程序&/a& 这一句就可以了。&各个项目含义如下所示:scheme:判别启动的App。 ※详细后述host:适当记述path:传值时必须的key & & ※没有也可以query:获取值的Key和Value& ※没有也可以&作为测试好好写了一下,如下:&a href=&myapp://jp.app/openwith?name=zhangsan&age=26&&启动应用程序&/a&
&接下来是Android端。首先在AndroidManifest.xml的MAIN Activity下追加以下内容。(启动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:scheme=&myapp& android:host=&jp.app& android:pathPrefix=&/openwith&/&
&/intent-filter&HTML记述的内容加入&data …/&。其中必须的内容仅scheme,没有其他内容app也能启动。&※注意事项:intent-filter的内容【android.intent.action.MAIN】和 【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。& & & & & & & & &所以,如果加入了同一个Activity,请按以下这样做,否则会导致应用图标在桌面消失等问题。&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:scheme=&myapp& android:host=&jp.app& android:pathPrefix=&/openwith&/&
&/intent-filter& 这样的话,没有问题。&接下来在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&); && & } &}这样就能获取到URL传递过来的值了。——————————————————————————————————我是分割线————————————————————————————————————代码copy完了,是不是很惊奇的发现用浏览器输入myapp://jp.app/openwith?name=zhangsan&age=26是不是404,打不开?楼主你这不是骗人么!楼主你个混蛋啊。客官,稍安勿躁啊,你看看你用的浏览器是什么?UC,猎豹,欧朋?放弃吧,试试系统自带浏览器或者谷歌浏览器吧。肯定能成功的,不能成功的话再来坑我。哈哈。——————————————————————————————————我是分割线————————————————————————————————————突然觉得好悲哀,好不容易get了这个技能,却不能被第三方浏览器使用。在这个android浏览器大部分被第三方占据着的时代不得不说是个悲剧啊。接下来还是说说为什么第三方浏览器不能成功吧。首先,我发现的是UC浏览器,如果你使用了自己的scheme,而不是http的话,uc会默认在你的scheme前面添加http://。这太坑爹了。其他浏览器没看是不是同样的情况。发现这个问题后我就试着把自己的scheme换成http。然后满怀期待的又跑了一遍,结果还是坑爹了。所以我想会不会是第三方浏览器对url做了处理。到这里,我也无可奈何了。我测试了UC,猎豹,欧朋,这3个都不支持。系统自带的和谷歌浏览器是支持的。最后再补充个线索吧,在浏览器里搜索百度应用。进了他们的页面后,他们是可以实现在各种浏览器启动已经安装好的本地app的。看到这个后我就看了下他们页面的源码。在这里他们页面添加了个data-sentintent的标签,看到这里,应该能确定第三方浏览器应该是默认都不支持发intent的,只能自己起一个。根据前端说,这个标签应该是自定义的。我们前端看源码的时候发现是这样的所以最后的结果应该是百度这边是起了个端口,然后在应用里启用了一个服务,来监听这个端口,来获取这个intent。大概就这个思路了。不过楼主没有实际去操作。项目时间紧,太麻烦了。对了,百度这个是有集成他们inapp这个sdk的。再附上两个相关链接:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
扫一扫加小编微信
添加时请注明:编码美丽,否则不予通过!
我的第一个App: 天真无谐
已经上线了,在各大市场都可以搜索到。希望大家多多支持!!
访问:3271132次
积分:25245
积分:25245
排名:第197名
原创:235篇
评论:17026条
文章:29篇
阅读:331388
文章:23篇
阅读:214111
文章:25篇
阅读:352829
文章:30篇
阅读:274133
文章:64篇
阅读:883688
(1)(5)(4)(8)(7)(8)(5)(5)(8)(1)(4)(4)(2)(1)(4)(3)(2)(4)(1)(1)(1)(30)(9)(4)(7)(12)(3)(12)(13)(6)(20)(6)(32)(32)

我要回帖

更多关于 百度浏览器登入不了 的文章

 

随机推荐