微信公众号 h5 中 获取 微信JS-SDK

首先放上官方文档

微信JS-SDK是用于调用微信提供的一些方法,比如拍照、上传图片、分享、等功能(微信虽然提供了自己的一套功能,但比如原生的上传图片、分享等功能再微信浏览器中仍然使用(实际使用体验欠佳),所以如果遇到无法兼容的问题,可以直接使用原生的方法)

1、首先是绑定js安全域名,在微信公众平台中左侧菜单拉到底,选择公众号设置

在这里插入图片描述

输入js接口安全域名,需要注意三点

  1. 安全域名是要“掐头去尾”的,比如添加百度(https://www.baidu.com)要写成(www.baidu.com)
  2. 不要忘记把js接口安全域名设置中的文件扔给后端,放在服务器上
  3. 该域名每个月只能修改5次,谨慎修改

2、引入js文件

按照官方要求引入<script src='https://res.wx.qq.com/open/js/jweixin-1.6.0.js'></script>即可

3、wx.config

虽然我们已经引入了wx的js文件,并且可以获取到wx.xxxx相关的方法,但是在调用微信的方法前,还是需要使用wx.config接口来获取调用的权限(部分接口不需要获取权限)

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

config中各种字段的算法一般都是后端处理,所以我们可以写一个函数专门来获取微信权限

/**
 * 获取wx方法权限
 * @param {*} type 需要获取的权限list
 */
getWxType(jsApiList) {
    let _this = this
    console.log('开始获取权限', jsApiList)
    return new Promise((resolve, reject) => {
        // 1、获取请求微信权限前需要的数据
        _this.$api.common
            .jssdkConfig()
            .then((res) => {
                console.log('1、获取请求微信权限前需要的数据成功', res)
                // 2、获取微信加入的权限
                wx.config({
                    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                    appId: res.app_id, // // 必填,公众号的唯一标识
                    timestamp: res.timestamp, // 必填,生成签名的时间戳
                    nonceStr: res.noncestr, // 必填,生成签名的随机串
                    signature: res.signature, // 必填,签名
                    jsApiList: jsApiList, // 必填,需要使用的JS接口列表
                });
                wx.ready((_) => {
                    console.log('2、权限获取成功')
                    resolve()

                });
                wx.error((res) => {
                    console.log('2、权限获取失败',res)
                    reject({title:'2、权限获取失败',err: res})
                });
            }).catch(err => reject({title:'1、获取请求微信权限前需要的数据',err: err}));
    })
}

上边我写了一个异步函数,在函数执行成功后的回调中调用我们需要使用的微信方法就可以了

需要注意,微信提供的方法中,很多方法都不只有两个回调函数

在这里插入图片描述

end

微信公众号H5获取用户的openid通常涉及到微信JS-SDK,这是一个JavaScript库,允许公众号开发者在网页上集成微信功能,包括用户授权登录。以下是基本步骤: 1. **引入微信JS-SDK**:首先,在你的HTML页面中引入微信JSSDK文件,一般是在`<head>`部分添加以下链接: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" charset="utf-8"></script> ``` 2. **配置信息**:在窗口加载完成之后,通过`wx.config`函数设置AppID、timestamp、nonceStr、signature等参数。这通常在页面底部的`window.onload`或`$(document).ready`回调中完成。 ```javascript wx.config({ debug: false, // 开启调试模式,可以查看错误信息 appId: 'your_app_id', // 你的公众号AppID timestamp: 'time_from_server', // 时间戳 nonceStr: 'random_string', // 随机字符串 signature: 'signature_from_server', // 签名 jsApiList: ['checkJsApi'] // 需要使用的JSAPI列表,如需获取openid则需要包含getJsApi }); ``` 3. **调用接口**:调用`wx.checkJsApi`检查所需的JSAPI是否已经可用,然后使用`wx.getMenuInfo`或`wx.getUserInfo`来获取用户信息,其中`getUserInfo`可以返回openid。 ```javascript wx.ready(function () { wx.getUserInfo({ success: function (res) { var openid = res.userInfo.openid; // 使用openid做后续操作 }, fail: function (err) { // 处理获取失败的情况 } }); }); ``` 4. **处理权限弹窗**:如果用户尚未授权,会触发微信的授权弹窗,用户同意后才会获取到openid。 记住,上述代码示例中的`your_app_id`、`time_from_server`、`random_string`、`signature_from_server`都是需要从服务器端获取的真实值。并且在生产环境中,`debug`应设为`false`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值