在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】,但是我们在真正的使用中我们不仅仅只是为了配置Config而已,而是要在我们的项目中真正去使用微信JS-SDK给我们带来便捷,那么这里我们就简述如何在微信web开发中使用必要的方法!在开始之前,上一篇有朋友有疑问,如何在手机端显示,这里我们来补充一下:

这里的前提是你要跟着做到,浏览器显示返回200 状态码。

(一)修改我们的menue。

打开我们的menueMain,将Button修改,修改后的代码如下:

  1. @Component
  2. public class MenuMain {
  3. public void createMenu(){
  4. ViewButton cbt=new ViewButton();
  5. cbt.setUrl("http://zqfbk.iok.la/mychat/jssdkconfig.jsp");
  6. cbt.setName("测试");
  7. cbt.setType("view");
  8.  
  9. ViewButton vbt=new ViewButton();
  10. vbt.setUrl("https://www.cnblogs.com/gede");
  11. vbt.setName("博客");
  12. vbt.setType("view");
  13.  
  14. JSONArray sub_button=new JSONArray();
  15. sub_button.add(cbt);
  16. sub_button.add(vbt);
  17.  
  18. JSONObject buttonOne=new JSONObject();
  19. buttonOne.put("name", "菜单");
  20. buttonOne.put("sub_button", sub_button);
  21.  
  22. JSONArray button=new JSONArray();
  23. button.add(vbt);
  24. button.add(buttonOne);
  25. button.add(cbt);
  26.  
  27. JSONObject menujson=new JSONObject();
  28. menujson.put("button", button);
  29. System.out.println(menujson);
  30.  
  31. //这里为请求接口的url +号后面的是token,这里就不做过多对token获取的方法解释
  32. String url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+GlobalConstants.getInterfaceUrl("access_token");
  33.  
  34. try{
  35. String rs=HttpUtils.sendPostBuffer(url, menujson.toJSONString());
  36. System.out.println(rs);
  37. }catch(Exception e){
  38. System.out.println("请求错误!");
  39. }
  40. }
  41. }

修改完成后,运行项目,调用我们的生成菜单方法:在浏览器中输入:http://zqfbk.iok.la/mychat/menue/。调用成功,后台会返回如下信息:

(二)测试

进入我们的公众号,点击测试,如下图,则配置成功:

接下来这里我们就简述如何在微信web开发中使用必要的方法!

在微信公众号提供的所有接口中我们可以按照接口实现的难易程度分成两个部分:

  • 较易实现:基础接口、分享接口、设备信息接口、地理位置接口、界面操作接口、微信扫一扫接口;

  • 较难实现:图像接口、音频接口、智能接口、微信小店接口、微信卡券接口、微信支付接口;(注:这里说较难是因为需要后端和本地文件配合接口)

在这里我们将讲述所有较易实现的接口的具体实现方法,在文在文章 https://www.cnblogs.com/gede/p/10949458.html中讲述过了如何配置和引入需要的js,通过这些配置之后我们就可以开始使用js的方法了!

①基础接口-判断当前浏览器是否支持某些js接口

  1. /*
  2. * 注意:
  3. * 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
  4. */
  5. wx.ready(function () {
  6. //1. 判断当前版本是否支持指定 JS 接口,支持批量判断,只需要将需要判断的接口放入到jsApiList中即可
  7. checkJsApifunction () {
  8. wx.checkJsApi({
  9. jsApiList: [
  10. 'getNetworkType',
  11. 'previewImage'
  12. ],
  13. success: function (res) {
  14. alert(JSON.stringify(res));
  15. }
  16. });
  17. };

②分享接口,这里包含:分享给朋友、分享到朋友圈、分享到qq、分享到微博、分享到qq空间(但是这里要提醒要注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限

③设备信息接口--这里是获取设备网络状态,以防在页面中存在视频或者大流量文件播放的时候对用户给出友好提示!
  1. // 3 设备信息接口
  2. // 3.1 获取当前网络状态
  3. getNetworkTypefunction () {
  4. wx.getNetworkType({
  5. success: function (res) {
  6. alert(res.networkType);
  7. var networkType = res.networkType; // 返回网络类型2g,3g,4g,wifi
  8. if(networkType=='3g'){
  9. alert("您好,您的网络状态是3g网络,这里将播放视频文件会产生大流程!");
  10. }
  11. },
  12. fail: function (res) {
  13. alert(JSON.stringify(res));
  14. }
  15. });
  16. };

④地理位置接口,这里包含查看经纬度对应的地图位置和获取当前位置的经纬度,可用做地图位置展示的第一步!

  1. // 4 地理位置接口
  2. // 4.1 查看地理位置
  3. openLocationfunction () {
  4. wx.openLocation({
  5. latitude: 23.099994,
  6. longitude: 113.324520,
  7. name: 'TIT 创意园',
  8. address: '广州市海珠区新港中路 397 号',
  9. scale: 14,
  10. infoUrl: 'http://weixin.qq.com'
  11. });
  12. };
  13.  
  14. // 4.2 获取当前地理位置
  15. getLocationfunction () {
  16. wx.getLocation({
  17. success: function (res) {
  18. alert(JSON.stringify(res));
  19. },
  20. cancel: function (res) {
  21. alert('用户拒绝授权获取地理位置');
  22. }
  23. });
  24. };

⑤界面操作接口,这里说的界面操作其实就是在微信浏览器中操作和改名的那右上角的【三个点】,对这里隐藏的菜单进行操作和关闭微信浏览器!

  1. // 5 界面操作接口
  2. // 5.1 隐藏右上角菜单
  3. hideOptionMenufunction () {
  4. wx.hideOptionMenu();
  5. };
  6.  
  7. // 5.2 显示右上角菜单
  8. showOptionMenufunction () {
  9. wx.showOptionMenu();
  10. };
  11.  
  12. // 5.3 批量隐藏菜单项
  13. hideMenuItemsfunction () {
  14. wx.hideMenuItems({
  15. menuList: [
  16. 'menuItem:readMode', // 阅读模式
  17. 'menuItem:share:timeline', // 分享到朋友圈
  18. 'menuItem:copyUrl' // 复制链接
  19. ],
  20. success: function (res) {
  21. alert('已隐藏“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
  22. },
  23. fail: function (res) {
  24. alert(JSON.stringify(res));
  25. }
  26. });
  27. };
  28.  
  29. // 5.4 批量显示菜单项
  30. showMenuItemsfunction () {
  31. wx.showMenuItems({
  32. menuList: [
  33. 'menuItem:readMode', // 阅读模式
  34. 'menuItem:share:timeline', // 分享到朋友圈
  35. 'menuItem:copyUrl' // 复制链接
  36. ],
  37. success: function (res) {
  38. alert('已显示“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
  39. },
  40. fail: function (res) {
  41. alert(JSON.stringify(res));
  42. }
  43. });
  44. };
  45.  
  46. // 5.5 隐藏所有非基本菜单项
  47. hideAllNonBaseMenuItemfunction () {
  48. wx.hideAllNonBaseMenuItem({
  49. success: function () {
  50. alert('已隐藏所有非基本菜单项');
  51. }
  52. });
  53. };
  54.  
  55. // 5.6 显示所有被隐藏的非基本菜单项
  56. showAllNonBaseMenuItemfunction () {
  57. wx.showAllNonBaseMenuItem({
  58. success: function () {
  59. alert('已显示所有非基本菜单项');
  60. }
  61. });
  62. };
  63.  
  64. // 5.7 关闭当前窗口
  65. closeWindowfunction () {
  66. wx.closeWindow();
  67. };

⑥微信扫一扫接口,这个接口可以在页面调用微信的扫一扫功能,其中参数needResult可以设置扫描之后的处理方式;

  1. // 6 微信原生接口
  2. wx.scanQRCode({
  3. needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
  4. scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
  5. success: function (res) {
  6. var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
  7. }
  8. });

那么到这里微信JS-SDK方法实现中的简答实现部分基本就讲述完成了!

最后我们写一个简单的页面,来调用不同的js。简单代码如下:

Java微信公众平台开发(十二)--微信JSSDK的使用的更多相关文章

  1. Java微信公众平台开发(十二)--微信用户信息的获取

    转自:http://www.cuiyongzhi.com/post/56.html 前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信 ...

  2. Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

  3. Java微信公众平台开发(十五)--微信JSSDK的使用

    转自:http://www.cuiyongzhi.com/post/63.html 在前面的文章中有介绍到我们在微信web开发过程中常常用到的 [微信JSSDK中Config配置] ,但是我们在真正的 ...

  4. Java微信公众平台开发(十)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  5. Java微信公众平台开发(一)--接入微信公众平台

    转自:http://www.cuiyongzhi.com/post/38.html (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin ...

  6. Java微信公众平台开发(十)--微信自定义菜单的创建实现

    转自:http://www.cuiyongzhi.com/post/48.html 自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的,但是一旦我们进入开发模式之后我们的自定义菜单就需要自 ...

  7. Java微信公众平台开发(十四)【番外篇】--微信web开发者工具使用

    转自:http://www.cuiyongzhi.com/post/58.html 为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信 ...

  8. 微信公众平台开发(二)——access_token、日志

    一.access_token 1)两种access_token,网页授权access_token和普通access_token 1.微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后, ...

  9. ASP.NET Web API实现微信公众平台开发(二)access_token与定时任务

    承接上一篇,今天主要讲述如何实现定时获取微信access_token功能的实现. access_token 首先我们根据微信的开发指南,任何对微信的操作都要使用合法获取的access_token,微信 ...

随机推荐

  1. BZOJ_3672_ [Noi2014]购票_CDQ分治+斜率优化

    BZOJ_3672_ [Noi2014]购票_CDQ分治+斜率优化 Description  今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参 ...

  2. 【C++基础】形参实参

    c++规定:一个函数的默认实参既可以在定义中,也可在声明中指定,但在一个文件(准确的说,是一个作用域)中只能为一个形参指定默认实参一次

  3. DB2 Error Messages (Sorted by SQLCODE)

    DB2 Error Messages (Sorted by SQLCODE) DB2 Error Messages (Sorted by SQLCODE) SQLCODE SQLSTATE Descr ...

  4. 转学习LINUX的建议

    作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下.在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什 ...

  5. hadoop2.6.0中自定义分割符

    最近在学习hadoop,用的hadoop2.6.0 然后在学习编写mapreduce程序时,发现默认对文件的输入是采用每行进行分割,下面来分析下改变这个分割方式的办法: 来看看默认是怎样实现的:

  6. vue 之 折线图挤压

    当tab标签栏变动时,echarts图会发生挤,这种情况,发现是html容器的width=100%这个设置,变成了width=100px. 解决方式: 1.设置一个最小宽度,获取width的值,当这个 ...

  7. 关于WPF的弹出窗口

    几个重要的概念需要清楚: Show和ShowDialog区别 1.调用Show方法后弹出子窗口后,线程会继续往下执行.调用ShowDialog方法弹出子窗口后,线程会阻塞,直到子窗口关闭才继续往下执行 ...

  8. ant错误 reference classes not found

    使用ant提示reference classes not found错误 原因是 里面的一些属性的值要用on或者yes或者off或者no..用成其他,例如true,false的话就会有这个提示..

  9. 第3章 编写ROS程序-2

    1.发布者程序 在本节中,我们将看到如何发送随机生成的速度指令到一个turtlesim海龟,使它漫无目的地巡游.这个程序的源文件称为pubvel,这个程序展示了从代码中发布消息涉及的所有要素. 其代码 ...

  10. 转载TCP-IP协议解释

    本文转载自 http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html TCP/IP模型是互联网的基础, 理解 TCP/IP对理解互联网至关重要 ...