记录一次微信h5开发 使用js-sdk的过程(填异步串行的智商坑)

1. 安装jweixin-module这个包

npm install jweixin-module --save

2. 写一个单独的js文件来定义初始化配置及其他方法

// jwx.js
let jweixin = require('jweixin-module')
import { getSignature } from '@/api/index.js' // 从后端获取签名


export default {
    // 检测是否在微信浏览器内 
    isWechat: function() {
		var ua = window.navigator.userAgent.toLowerCase()
		if(ua.match(/micromessenger/i) == 'micromessenger') {
			return true
		}else{
			return false
		}
	},
    // 检测api是否可用 
    checkJsApi: function() {
		jweixin.checkJsApi({
			jsApiList: ['getLocalImgData'], // 需要检测的 JS 接口列表
			success: function(res) {
                console.log(res)
				// 以键值对的形式返回,可用的 api 值true,不可用为false
			}
		})
	},
    // 初始化配置
    initJssdk: function(callback) {
		//获取当前url然后传递给后台获取授权和签名信息
		getSignature().then(res => {
			//注入config权限配置
			jweixin.config({
				debug: false,
				appId: res.data.data.appId,
				timestamp: res.data.data.timestamp,
				nonceStr: res.data.data.nonceStr,
				signature: res.data.data.signature,
				jsApiList: ['getLocalImgData','chooseImage','checkJsApi']
			});
			if (callback) {
				callback(res.data);
			}
		})
	}
}

3. main.js全局引入

Vue.prototype.$jwx = jwx

4. ===================坑===================

主要是自己对程序的理解不够

这里我用的是wx.chooseImage选择相册及相机图片,会返回本地图片id列表,然后调用wx.getLocalImgData来获取本地图片的base64格式,最后转成文件对象,存到oss

- 原来的代码就是循环本地图片id列表 但是发现 选择一张图片可以 但选两张就不行了,会报错,于是我就想这个getLocalImgData有可能是异步的,于是使用这种递归方法去串行调用

syncUpload(localIds){
	let localId = localIds.pop()
	let _this = this
	_this.$jwx.getLocalImgData(localId).then(res1 => {
		uni.uploadFile({
			url: _this.$urls,
			file: res1,
			name: 'file', 
			success(res2) {
				// 业务代码
                if(localIds.length > 0) _this.syncUpload(localIds)
			}
		})
	})
}

5. 最后成功,成功的代价是 想到这个异步用了3个小时的时间(加上中午没睡觉)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
企业微信H5 JS-SDK是一个用于开发企业微信H5应用的SDK工具,可以实现企业微信的认证、JSAPI调用等功能。下面是企业微信H5 JS-SDK的调试方法: 1. 在企业微信开发者后台创建应用,并获取到应用的CorpID和Secret。 2. 在需要调试的H5页面中引入企业微信H5 JS-SDKSDK文件,例如: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 3. 在页面的JS代码中,初始化企业微信H5 JS-SDK,并配置需要使用的接口,例如: ```javascript wx.config({ beta: true, debug: true, appId: 'CorpID', timestamp: '', nonceStr: '', signature: '', jsApiList: ['checkJsApi', 'chooseImage', 'previewImage'] }); ``` 需要将上述代码中的CorpID替换为自己应用的CorpID,timestamp、nonceStr和signature需要根据后端生成的签名参数进行获取。 4. 配置完成后,可以通过调用企业微信H5 JS-SDK提供的接口进行调试。例如,调用企业微信H5 JS-SDK中的chooseImage接口选择图片: ```javascript wx.chooseImage({ count: 1, success: function (res) { var localIds = res.localIds; alert(localIds); // 显示选择的图片的本地ID列表 } }); ``` 5. 在手机上打开需要调试的H5页面,使用企业微信扫描二维码或直接打开链接,即可进行调试。 通过上述步骤,就可以进行企业微信H5 JS-SDK的调试,通过调试可以验证SDK的功能是否正常,同时可以根据实际需求进行业务逻辑的开发和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萨科学习之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值