微信的JSSDK都有哪些内容?如何接入?

news/2024/12/5 6:10:27/文章来源:https://www.cnblogs.com/ai888/p/18587619

微信 JSSDK (JavaScript Software Development Kit) 为开发者提供了一系列 API,让网页能够在微信浏览器内访问设备的功能,例如拍照、录音、定位、分享等,增强用户体验。

主要内容(分类):

  • 基础接口: 判断当前客户端版本、获取网络状态等。
  • 界面操作接口: 关闭当前网页、隐藏/显示右上角菜单、显示底部菜单栏等。
  • 多媒体接口: 拍照或从手机相册中选图、预览图片、录音、播放/暂停音频等。
  • 位置接口: 获取地理位置、查看位置。
  • 设备信息接口: 获取网络类型、获取系统信息。
  • 分享接口: 分享到朋友圈、分享给朋友、分享到 QQ 和 QQ 空间。
  • 微信支付接口: 调起微信支付。
  • 扫一扫接口: 调起微信扫一扫。
  • 卡券接口: 添加卡券、查看卡券等。
  • 智能接口: 语音识别、图像识别等。

接入步骤(前端开发):

  1. 绑定域名: 在微信公众平台后台的“公众号设置” -> “功能设置” -> “JS 接口安全域名”中配置你的网页域名。注意:必须是备案过的域名,且不支持 IP 地址或 localhost。

  2. 引入 JS 文件: 在你的网页 HTML 文件中引入微信 JSSDK 文件:

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

(版本号可能更新,请以官方文档为准)

  1. 通过 config 接口注入权限验证配置: 这是最重要的一步,需要调用 wx.config 方法。
wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在传入参数的函数内打印一下传入的参数。appId: '你的AppId', // 必填,公众号的唯一标识timestamp: '时间戳', // 必填,生成签名的时间戳nonceStr: '随机字符串', // 必填,生成签名的随机串signature: '签名', // 必填,签名,见附录1jsApiList: ['需要使用的JS接口列表'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

获取签名 signature 的步骤:

a. 获取 access_token: 通过公众号的 appid 和 appsecret 获取 access_token。

b. 获取 jsapi_ticket: 使用 access_token 获取 jsapi_ticket。

c. 生成签名: 使用 jsapi_ticket、nonceStr(随机字符串)、timestamp(时间戳)、url(当前网页的URL,不包含#及其后面部分)四个参数进行 SHA1 加密,得到签名。

示例代码 (Node.js 后端生成签名):

const crypto = require('crypto');// ... (获取 access_token 和 jsapi_ticket 的代码) ...function createSignature(jsapi_ticket, noncestr, timestamp, url) {const str = `jsapi_ticket=${jsapi_ticket}&noncestr=${noncestr}&timestamp=${timestamp}&url=${url}`;const hash = crypto.createHash('sha1').update(str).digest('hex');return hash;
}// ... (调用 createSignature 函数生成签名) ...
  1. 处理 config 接口注入权限验证的回调结果: 通过 wx.readywx.error 方法处理 config 接口的回调结果。
wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。// 例如:wx.getLocation({type: 'wgs84', // 默认为wgs84的gps坐标,如果需要gcj02的火星坐标,可以传入'gcj02'success: function (res) {// ... 处理获取位置成功的结果 ...}});
});wx.error(function(res){// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/847442.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

攻防世界:Crypto习题之easy_RSA

攻防世界:Crypto习题之easy_RSA RSA 加密 在非对称加密算法中,单向函数被广泛应用,用于确保从公钥加密后的密文无法轻易推导出私钥,从而保证数据的安全性。而其中最著名的算法便是 RSA 加密算法。 首先设 $$\varphi(m) := | { 1 \leq k \leq m |\gcd(k, m) = 1 } |$$ 为欧…

HCIP-23 IGMP原理与配置

IGMP的主要作用是让组播网络感知组播组成员的位置和所加组播组,同时也能维护组成员的加组状态。 IGMP有三种版本: IGMPv1:有基本的加组机制,但是组成员离开机制较为落后,同时没有独立的IGMP查询器选举机制。 IGMPv2:在IGMPv1的基础上改善了组成员离开机制,同时拥有了独立…

acwing语法基础课总结(未完结)

题单 https://www.acwing.com/activity/content/10/ 1>基础概念 权重(609) 和比列不同,例如A的成绩是90,权重为3.5;B的成绩是95,权重是7.5平均成绩就是(90 * 3.5 + 95 * 7.5) * 1.0 / (3.5 + 7.5) pow函数 返回值类型为double类型 取整函数ceil函数 向上取整 头文件 cma…

苹果im虚拟机系统,苹果imessage推信软件,苹果iMessage自动群发协议–持续更新中...

一、电脑版虚拟机苹果系统(Mac OS)上实现imessage群发: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁” 工具欺骗macOS系统,让苹果系统认为你的电脑其…

上穷碧落下黄泉

上穷碧落下黄泉,动手动脚找东西。——傅斯年 《黄泉下的美术》真好看吧,巫鸿老师我将追随你我的朋友很喜欢送给我“安安心心”这个词我也会幻想我只需要当个浸在瑰色梦中的小公主一个只需要安安心心在知识的海洋里行走的学者但幻想只是幻想啊,与现实有着无可避免的距离我很不…

高效沟通的密码:PREP 沟通表达模型 - 1、观点 2、依据 3、事例 4、重述观点

PREP 沟通模型介绍 PREP 沟通模型是一种用于有效沟通和表达观点的结构化方法。它由四个部分组成,分别是Point 观点 Reason 依据 Example 事例 Point 重述观点PREP 把表达过程分成四个步骤:先说观点,再说依据,举事例说明,最后在重述观点。1、PREP 沟通模型先提出观点,让听…

一分钟了解不同架构的优缺点

单体应用架构(Monolithic Architecture) 1968 年的软件危机产生了软件工程,并且催生了面向对象的高级语言,例如 1972 的 C 语言,同时产生了我们的单体式的技术架构。 单体应用架构是一种传统的应用架构模式,也是至今为止,一直被大规模使用的一种方式,是将应用程序作为一…

记录一个比较难找的封装端子A1257WV----来自达妙的电机驱动板

起因 想设计一个CAN总线的转接板,奈何这个端子实在是太过于抽象了,以至于连封装都很难找, 这里浅浅的记录一下下。 正文 这个在嘉立创搜叫: A1257WV-S-4P-LCP 其中里面的4P代表的意思是四个引脚这东西还有立式和卧式,买的时候注意区分在原理图里面是这个样子的:感觉这种段…

STM32F103 PWM配置

在《STM32F103定时器配置》中我们介绍了PWM的产生原理,本节介绍介绍如何编码实现PWM的输出。 一、PWM相关寄存器 TIMx如果要产生PWM,除了我们上一节提到的如下寄存器:控制寄存器(TIMx_CR1); DMA/中断使能寄存器(TIMx_DIER); 预分频寄存器(TIMx_PSC); 从模式控制寄存…

gitlab实现https及管理员密码找回

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.gitlab实现https1.实现https概述2.gitlab实现https实战案例二.找回gitlab忘记的密码(可用于破解别人的gitlab服务器)1.官方文档2.实战案例 一.gitlab实现https 1.实现https概述 gitlab如果用于不安全的…

2024CCPC长春邀请赛VP D,EG,L

L. Recharge给你三个整数,k,x,y。。x和y分别代表x个1和y个2 问你最多能凑出几个k 我们只需要考虑是否会出现浪费2的情况比如k=3 你此时没有1就只能用两个2来凑出这个3,这样就会浪费1. 我们把k分成奇偶数来看,如果k是偶数,那么百分百不会出现浪费,只需要把(y*2+x)/k就能得到…

Bclinux离线安装PostgreSQL10.23+PostGIS2.5编译安装配置

一、安装PostgreSQL1、安装PostgreSQL解压PostgreSQL软件包tar -zxvf postgresql.tar.gz配置并安装PostgreSQL[postgres@localhost setup]$ tar -zxvf postgresql-10.23.tar.gz 进入解压后的目录,按照PostgreSQL的官方文档进行配置和安装。这通常涉及到创建数据目录、配置post…