Java微信公众平台开发(15) 微信JSSDK的使用

发布时间 - 2026-01-11 00:50:49    点击率:

在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】 ,但是我们在真正的使用中我们不仅仅只是为了配置Config而已,而是要在我们的项目中真正去使用微信JS-SDK给我们带来便捷,那么这里我们就简述如何在微信web开发中使用必要的方法!微信的JS-SDk中为我们提供的方法很多,这里我有一个简单截图如下:

在上图的提供的所有口中我们可以按照接口实现的难易程度分成两个部分:

较易实现:基础接口、分享接口、设备信息接口、地理位置接口、界面操作接口、微信扫一扫接口;
较难实现:图像接口、音频接口、智能接口、微信小店接口、微信卡券接口、微信支付接口;(注:这里说较难是因为需要后端和本地文件配合接口,这些接口后面会一篇篇文章具体详解)
在这里我们将讲述所有较易实现的接口的具体实现方法,在文章中讲述过了如何配置和引入需要的js,通过这些配置之后我们就可以开始使用js的方法了!

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

注意:
所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

wx.ready(function () {
 //1. 判断当前版本是否支持指定 JS 接口,支持批量判断,只需要将需要判断的接口放入到jsApiList中即可
 checkJsApifunction () {
 wx.checkJsApi({
  jsApiList: [
  'getNetworkType',
  'previewImage'
  ],
  success: function (res) {
  alert(JSON.stringify(res));
  }
 });
 };

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

 // 2. 分享接口
 // 2.1 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口
 onMenuShareAppMessagefunction () {
 wx.onMenuShareAppMessage({
  title: '菜鸟程序员成长之路!',
  desc: '关注java平台开发,前后端框架技术,分享前后端开发资源,服务端教程技术,菜鸟程序员!',
  link: 'http://www.cuiyongzhi.com/',
  imgUrl: 'http://res.cuiyongzhi.com/2016/03/201603201591_339.png',
  trigger: function (res) {
  // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
  alert('用户点击发送给朋友');
  },
  success: function (res) {
  alert('已分享');
  },
  cancel: function (res) {
  alert('已取消');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 alert('已注册获取“发送给朋友”状态事件');
 };
 
 // 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口
 onMenuShareTimelinefunction () {
 wx.onMenuShareTimeline({
  title: '菜鸟程序员成长之路!',
  link: 'http://www.cuiyongzhi.com/',
  imgUrl: 'http://res.cuiyongzhi.com/2016/03/201603201591_339.png',
  trigger: function (res) {
  // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
  alert('用户点击分享到朋友圈');
  },
  success: function (res) {
  alert('已分享');
  },
  cancel: function (res) {
  alert('已取消');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 alert('已注册获取“分享到朋友圈”状态事件');
 };
 
 // 2.3 监听“分享到QQ”按钮点击、自定义分享内容及分享结果接口
 onMenuShareQQfunction () {
 wx.onMenuShareQQ({
  title: '菜鸟程序员成长之路!',
  desc: '关注java平台开发,前后端框架技术,分享前后端开发资源,服务端教程技术,菜鸟程序员!',
  link: 'http://www.cuiyongzhi.com/',
  imgUrl: 'http://res.cuiyongzhi.com/2016/03/201603201591_339.png',
  trigger: function (res) {
  alert('用户点击分享到QQ');
  },
  complete: function (res) {
  alert(JSON.stringify(res));
  },
  success: function (res) {
  alert('已分享');
  },
  cancel: function (res) {
  alert('已取消');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 alert('已注册获取“分享到 QQ”状态事件');
 };
 
 // 2.4 监听“分享到微博”按钮点击、自定义分享内容及分享结果接口
 onMenuShareWeibofunction () {
 wx.onMenuShareWeibo({
  title: '菜鸟程序员成长之路!',
  desc: '关注java平台开发,前后端框架技术,分享前后端开发资源,服务端教程技术,菜鸟程序员!',
  link: 'http://www.cuiyongzhi.com/',
  imgUrl: 'http://res.cuiyongzhi.com/2016/03/201603201591_339.png',
  trigger: function (res) {
  alert('用户点击分享到微博');
  },
  complete: function (res) {
  alert(JSON.stringify(res));
  },
  success: function (res) {
  alert('已分享');
  },
  cancel: function (res) {
  alert('已取消');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 alert('已注册获取“分享到微博”状态事件');
 };
 
 // 2.5 监听“分享到QZone”按钮点击、自定义分享内容及分享接口
 onMenuShareQZonefunction () {
 wx.onMenuShareQZone({
  title: '菜鸟程序员成长之路!',
  desc: '关注java平台开发,前后端框架技术,分享前后端开发资源,服务端教程技术,菜鸟程序员!',
  link: 'http://www.cuiyongzhi.com/',
  imgUrl: 'http://res.cuiyongzhi.com/2016/03/201603201591_339.png',
  trigger: function (res) {
  alert('用户点击分享到QZone');
  },
  complete: function (res) {
  alert(JSON.stringify(res));
  },
  success: function (res) {
  alert('已分享');
  },
  cancel: function (res) {
  alert('已取消');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 alert('已注册获取“分享到QZone”状态事件');
 };

③设备信息接口--这里是获取设备网络状态,以防在页面中存在视频或者大流量文件播放的时候对用户给出友好提示!

 // 3 设备信息接口
 // 3.1 获取当前网络状态
 getNetworkTypefunction () {
 wx.getNetworkType({
  success: function (res) {
  alert(res.networkType);
  var networkType = res.networkType; // 返回网络类型2g,3g,4g,wifi
  if(networkType=='3g'){
   alert("您好,您的网络状态是3g网络,这里将播放视频文件会产生大流程!");
  }
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 };


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

 // 4 地理位置接口
 // 4.1 查看地理位置
 openLocationfunction () {
 wx.openLocation({
  latitude: 23.099994,
  longitude: 113.324520,
  name: 'TIT 创意园',
  address: '广州市海珠区新港中路 397 号',
  scale: 14,
  infoUrl: 'http://weixin.qq.com'
 });
 };
 
 // 4.2 获取当前地理位置
 getLocationfunction () {
 wx.getLocation({
  success: function (res) {
  alert(JSON.stringify(res));
  },
  cancel: function (res) {
  alert('用户拒绝授权获取地理位置');
  }
 });
 };

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

 // 5 界面操作接口
 // 5.1 隐藏右上角菜单
 hideOptionMenufunction () {
 wx.hideOptionMenu();
 };
 
 // 5.2 显示右上角菜单
 showOptionMenufunction () {
 wx.showOptionMenu();
 };
 
 // 5.3 批量隐藏菜单项
 hideMenuItemsfunction () {
 wx.hideMenuItems({
  menuList: [
  'menuItem:readMode', // 阅读模式
  'menuItem:share:timeline', // 分享到朋友圈
  'menuItem:copyUrl' // 复制链接
  ],
  success: function (res) {
  alert('已隐藏“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 };
 
 // 5.4 批量显示菜单项
 showMenuItemsfunction () {
 wx.showMenuItems({
  menuList: [
  'menuItem:readMode', // 阅读模式
  'menuItem:share:timeline', // 分享到朋友圈
  'menuItem:copyUrl' // 复制链接
  ],
  success: function (res) {
  alert('已显示“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
  },
  fail: function (res) {
  alert(JSON.stringify(res));
  }
 });
 };
 
 // 5.5 隐藏所有非基本菜单项
 hideAllNonBaseMenuItemfunction () {
 wx.hideAllNonBaseMenuItem({
  success: function () {
  alert('已隐藏所有非基本菜单项');
  }
 });
 };
 
 // 5.6 显示所有被隐藏的非基本菜单项
 showAllNonBaseMenuItemfunction () {
 wx.showAllNonBaseMenuItem({
  success: function () {
  alert('已显示所有非基本菜单项');
  }
 });
 };
 
 // 5.7 关闭当前窗口
 closeWindowfunction () {
 wx.closeWindow();
 };

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

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

那么到这里微信JS-SDK方法实现中的简答实现部分基本就讲述完成了,后面将继续为大家一篇篇带来没有讲述的js方法实现,感谢你的翻阅,如有疑问可以留言一起讨论!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Java  # 微信  # JS  # SDK  # docker版es、milvus、minio启动命令详解  # JAVA maven项目使用钉钉SDK获取token、用户  # 使用Java SDK实现离线签名  # docker搭建minio及java sdk使用过程详解  # 菜鸟  # 后端  # 自定义  # 菜单项  # 服务端  # 成长之路  # 是一个  # 一扫  # 还没有  # 给朋友  # 新港  # 较难  # 发送给朋友  # 客户端  # 较易  # 您的  # 这时候  # 都有  # 在这里  # 是因为 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: js代码实现下拉菜单【推荐】  iOS验证手机号的正则表达式  JavaScript常见的五种数组去重的方式  焦点电影公司作品,电影焦点结局是什么?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  轻松掌握MySQL函数中的last_insert_id()  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel怎么实现模型属性的自动加密  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  javascript基本数据类型及类型检测常用方法小结  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何自定义建站之星模板颜色并下载新样式?  魔方云NAT建站如何实现端口转发?  详解Oracle修改字段类型方法总结  ,在苏州找工作,上哪个网站比较好?  JavaScript如何实现倒计时_时间函数如何精确控制  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  郑州企业网站制作公司,郑州招聘网站有哪些?  微信小程序 input输入框控件详解及实例(多种示例)  如何为不同团队 ID 动态生成多个“认领值班”按钮  如何快速生成橙子建站落地页链接?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Python自动化办公教程_ExcelWordPDF批量处理案例  Android仿QQ列表左滑删除操作  简单实现Android文件上传  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  javascript中对象的定义、使用以及对象和原型链操作小结  如何在阿里云完成域名注册与建站?  phpredis提高消息队列的实时性方法(推荐)  Java解压缩zip - 解压缩多个文件或文件夹实例  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  香港服务器选型指南:免备案配置与高效建站方案解析  在Oracle关闭情况下如何修改spfile的参数  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  iOS中将个别页面强制横屏其他页面竖屏  浅谈redis在项目中的应用  深入理解Android中的xmlns:tools属性  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)