应用场景: 移动端web页面顶部有引导安装/打开APP的入口,APP内使用内置浏览器打开该web页面还显示该入口,会给用户带来使用上的困惑
需求:如果是在APP内打开的移动端web页面,隐藏页面顶部引导安装/打开APP的入口
首先我们要知道web页面通过js脚本能够很容易就能拿到浏览器的userAgent属性(下面简称ua属性),而APP,不管是IOS还是android平台,都有改写、自定义ua的能力。
那我们就可在APP启动的时候,添加一个自定义ua属性,然后web页面就能够根据这个自定义的ua属性是否存在来作为判断依据,轻而易举的就能解决这个问题啦。
apicloud本身也提供了对应的方法及api来调用原生ios/android 两大平台下各自改写、自定义ua属性的能力,具体步骤如下:
第一步
在config.xml添加
<preference name="userAgent" value="isApp" />
注:这里的value值仅作示范用,根据自身项目要求自定义该值,该值会以追加的形式被添加到系统默认User Agent的后面
第二步
在移动web网页里面添加
<script type="text/javascript"> var ver = navigator.userAgent;//获取用户端的Web浏览器版本号 var isApp= ver.indexOf("isApp");//检测特殊字符串"isApp"是否存在, if(a!=-1){ alert('是自家app'); }else{ alert('不是自家app'); } </script>
通过上面简单2步,轻松实现“自定义userAgent,快速判断web页面是否在App中打开”,进而解决上述需求。
上面是统一修改ua属性的方法,另外,我们还可以在openWin、openFrame这两个api方法内指定headers属性设置请求信息,针对单页面自定义ua属性。
参考链接
https://docs.apicloud.com/Dev-Guide/app-config-manual#14-6
https://docs.apicloud.com/Client-API/api#33
https://docs.apicloud.com/Client-API/api#27
https://community.apicloud.com/bbs/thread-71378-1-1069.html
扩展阅读
原生js改写userAgent
https://blog.csdn.net/fuck_yousb/article/details/90412468
https://v2ex.com/t/332923
0条评论( 网友:0 条,站长:0 条 ) 网友评论{有您的评论更精彩....}