概述:

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。

通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

JSSDK使用步骤:

1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”

备注:登录后可在“开发者中心”查看对应的接口权限。

 2.引入js文件(必须)

在需要调用JS接口的页面引入如下JS文件,http://res.wx.qq.com/open/js/jweixin-1.2.0.js (推荐使用: https://res.wx.qq.com/open/js/jweixin-1.0.0.js)

备注:支持使用 AMD/CMD 标准模块加载方法加载.

3.通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

  window.wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: sign.appId, // 必填,公众号的唯一标识timestamp: sign.timestamp, // 必填,生成签名的时间戳nonceStr: sign.nonceStr, // 必填,生成签名的随机串signature: sign.signature, // 必填,签名,见附录1
    jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','hideMenuItems','showMenuItems','showAllNonBaseMenuItem','hideAllNonBaseMenuItem','startRecord','stopRecord','onVoiceRecordEnd','uploadVoice','downloadVoice','playVoice','onVoicePlayEnd','pauseVoice','stopVoice','openLocation','getLocation','chooseWXPay','onMenuShareQQ','scanQRCode',], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2});

注: sign需要请求后台获取,jsApiList可根据实际需求增减。

4.通过ready接口处理成功验证

wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口
   获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。// 微信扫一扫属于用户触发行为,固不需要放在此处执行
});

注:不论config信息验证是否成功,最终都会执行ready方法

5.通过error接口处理失败验证

wx.error(function(res){// config信息验证失败会执行error函数,如签名过期导致验证失败,具体
    错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});

调用微信接口(以扫一扫为例)

wx.scanQRCode({needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有success: function (res) {var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
  }
});//如需对扫码结果进行处理,可在此方法外层包裹一层函数,传入回调,形如:
const scanQRCode = (fn) => {wx.scanQRCode({// 默认为0,扫描结果由微信处理,1则直接返回扫描结果needResult: 1,desc: 'scanQRCode desc',success(res) {fn(res.resultStr)},});},

介绍就到这里了,如果想了解更多,请参考微信js-sdk说明文档

转载于:https://www.cnblogs.com/AllenR/p/8176599.html

微信JS-SDK使用步骤(以微信扫一扫为例)相关推荐

  1. php转发朋友圈缩略图片,解释最全的,手把手教的微信JS sdk分享设置教程-微信分享插件PHP源码JS-SDK接口,分享到朋友圈 转发好友带缩略图...

    亲们,此文是我上传的有关微信分享插件PHP源码JS-SDK接口的.rar和.zip的说明使用文件 许多朋友都面临自己编写的网站通过微信转发时,无论是分享微信好友或是微信朋友圈时,出现无缩略图显示的问题 ...

  2. 微信js sdk 授权上传头像下载代码片段和注意事项

    /*  * 描述:当前页授权  * @param url   例:index.html / 如果有参数,需加密index.html?id=1     */ 1.对需要运用js sdk的页面授权 get ...

  3. 实战微信JS SDK开发:贺卡制作与播放(1)

    前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...

  4. 使用微信js sdk关于选择及上传图片至腾讯云COS

    使用微信js sdk关于选择及上传图片至腾讯云COS 使用微信js sdk关于选择及上传图片至腾讯云COS 背景 名词 参考 效果图展示 开发步骤 1:概要步骤 2:上代码 结束: 使用微信js sd ...

  5. 微信-js sdk invalid signature签名错误 问题解决

    微信-js sdk invalid signature签名错误 问题解决 参考文章: (1)微信-js sdk invalid signature签名错误 问题解决 (2)https://www.cn ...

  6. 微信js sdk 分享 失败 有时候好 有时候坏

    微信js sdk 分享 失败  有时候好 有时候坏 用了一个www开头的域名 和一个xx.com的域名 两个在解析上有问题. 实践是www.xx.com的比较 稳定 转载于:https://www.c ...

  7. 微信JS SDK开放,前端开发者“鸡冻”了!

    HTML5又一次逆袭了,其实之前微信也是有一些JS API的,比如分享.但这次一股脑开放了拍摄.录音.语音识别.二维码.地图.支付.分享.卡券等几十个API,这条消息不需宣传,瞬间就占满了HTML5从 ...

  8. 微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端

    微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端 case FriendTalkNotice: {// 微信好友发来聊天消息 log.debug("socket:msgtype= ...

  9. 微信开发SDK使用教程--手机微信个人号新增好友通知服务端

    微信开发SDK使用教程--手机微信个人号新增好友通知服务端 case FriendAddNotice: {// 微信个人号新增好友通知 log.debug("socket:msgtype=F ...

  10. 微信JS SDK Demo

    微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置 原文:http://www.cnblogs.com/txw1958/p ...

最新文章

  1. ExecuteScalar()如何返回整数
  2. python中的列表生成式
  3. python实现计算器
  4. ajax如何处理程序设计,Struts与Ajax高级程序设计
  5. 【转】HBase原理和设计
  6. 07_Redis事务
  7. Maven学习总结(51)——Maven 常用属性和常量说明
  8. 安川机器人位置变量要素_安川机器人变量分配(维修)
  9. Android ClassLoader笔记(二)
  10. tiny6410裸机实验第0章--------------开发环境的搭建(USB转串口)
  11. “奶茶第一股”会花落“草根品牌”蜜雪冰城吗?
  12. 阿里云短信校验注册完整版
  13. java中如何开启事务_Java中开启事务操做数据库
  14. 如何解决系统更新后Safari Mac浏览器崩溃等的问题!
  15. L2UWE: A Framework for the Efficient Enhancement of Low-Light Underwater Images阅读札记
  16. 机器码怎么改?笔记本机器码怎么改?(最新你看你也会)
  17. 2021-08-16 WPF控件专题 WrapPanel 控件详解
  18. 在x64上构建智能家居(home assistant) (三) 功能介绍 addons,hacs安装
  19. 夜晚拍照出现耀斑的原因
  20. leetcode题解:两数相除

热门文章

  1. c语言 结构成员 变量引用,C++结构体变量的引用
  2. arduino 读取当前时间_Arm难以撼动,暴露下的Arduino与RISCV联合体就是个笑话
  3. 基本蚁群算法的C++源程序
  4. 汇编中的条件转移指令
  5. 设计模式:选择排序(select sorting)
  6. 几篇JVM实战的东西
  7. 激光投影市场将保持产品多元化发展趋势
  8. docker 镜像的使用和下载
  9. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 控制角色在真实的环境中寻路...
  10. Pycharm安装pip pip安装第三方模块