微信开发:微信JSAPI模式与浏览器类型安全访问
安安 2017-12-14 来源 :网络 阅读 1020 评论 0

摘要:本篇微信开发教程将为大家讲解微信开发编程的知识点,看完这篇文章会让你对微信开发编程的知识点有更加清晰的理解和运用。

本篇微信开发教程将为大家讲解微信开发编程的知识点,看完这篇文章会让你对微信开发编程的知识点有更加清晰的理解和运用。

摘要: 微信浏览器是在微信安装时内置在微信中的,针对浏览器的类型我们可以设置相应的安全策略——仅允许在微信内置浏览器中打开。本文选自《微信企业号开发完全自学手册》。

1 JSAPI模式介绍

  在介绍JSAPI模式之前,首先需要介绍一下微信内置浏览器。可能很多人注意到了,在打开微信“朋友圈”链接的时候会出现进度条,如图5.1所示,这实际上就是微信内置浏览器访问页面的进度。也就是说,“朋友圈”是通过微信内置的浏览器访问的手机页面,并且微信浏览器是在微信安装时内置在微信中的。
微信开发:微信JSAPI模式与浏览器类型安全访问

微信内置浏览器进度条

注意:iPhone(苹果)和Android(安卓)的微信内置浏览器不同,安卓手机上的微信使用的是QQ浏览器X5内核,苹果手机上的微信使用的则是Safari浏览器。

  JSAPI模式是通过调用微信JS-SDK开发手机Web页面的模式,本质上亦是开发B/S(Browser/Server,浏览器/服务器模式)服务,只是业务上较以往的PC业务更加方便,功能上也稍具差异。在微信JSAPI模式下,不仅可以调用微信拍照、选图、语音、位置等手机功能,还可以实现微信分享、扫一扫等微信特有的功能,同时,可以使用HTML5完成页面效果的丰富,实现更加完美的用户体验。

2 浏览器类型安全访问

  针对浏览器的类型我们可以设置相应的安全策略—仅允许在微信内置浏览器中打开。
  通过ServletActionContext.getRequest().getHeader("User-Agent")获得当前浏览器代理信息,各类型浏览器代理信息如下:
(1)IE浏览器:

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

(2)Google浏览器:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36

(3)360安全浏览器:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36

(4)UC浏览器:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/5.7.15319.202 Safari/537.36

(5)手机QQ浏览器:

Mozilla/5.0 (Linux; Android 4.2.2; N1W Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/036558 Safari/537.36 V1_AND_SQ_6.5.0_390_YYB_D QQ/6.5.0.2835 NetType/WIFI WebP/0.3.0 Pixel/1080

(6)Android微信内置浏览器:

Mozilla/5.0 (Linux; Android 4.2.2; N1W Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/036558 Safari/537.36 MicroMessenger/6.3.23.840 NetType/WIFI Language/zh_CN

(7)iPhone微信内置浏览器:

Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G36 MicroMessenger/6.3.24 NetType/4G Language/zh_CN

  通过对比多个浏览器的代理信息,可以发现一个关键信息“MicroMessenger”。通过“MicroMessenger”便能够区分请求的来源,从而保证信息只能在微信中打开,示例代码如下:

    HttpServletRequest req = ServletActionContext.getRequest();

    //识别微信浏览器

    String userAgent=req.getHeader("User-Agent");//里面包含了设备类型

    if(-1==userAgent.indexOf("MicroMessenger")){

        //如果不是微信浏览器,则跳转到安全页

        return "safePage";

    }

  JSP页面中,防止外部浏览器打开方法的示例代码如下:

<%

    //识别微信浏览器

    String userAgent=request.getHeader("User-Agent");//里面包含了设备类型

    if(-1==userAgent.indexOf("MicroMessenger")){

        //如果不是微信浏览器,则跳转到安全页

        request.getRequestDispatcher("noRightPage.jsp").forward(request, response);

    }

%>

  备注:在微信中,可以通过userAgent.indexOf("iPhone")来区分是Android手机还是iPhone手机,示例代码如下:

HttpServletRequest req = ServletActionContext.getRequest();String userAgent=req.getHeader("User-Agent");//里面包含了设备类型if(-1!=userAgent.indexOf("iPhone")){//-------如果是苹果手机----------////此方法需要浏览器自己能够打开,iOS可以,但是微信Android版内置浏览器不支持

}else{//如果非苹果手机,则自己处理文档

}

 

希望这篇微信开发文章可以帮助到你。总之,同学们,你想要的职坐标微信开发频道都能找到!


本文由 @安安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程