wx.config wx.agentConfig undefined 的问提。
原因: 是uni-app自身在window下面挂载了wx的全局变量。导致微信引入的二个js,wx异常。
解决办法: 在App.vue 中,onLaunch 加载方法中,动态引入这二个js。这个方法只支持 h5 开发
onLaunch: function () {
let that = this;
const script1 = document.createElement("script");
script1.setAttribute("type", "text/javascript");
script1.setAttribute("referrerpolicy", "origin");
script1.setAttribute("src", "https://res.wx.qq.com/open/js/jweixin-1.2.0.js");
document.head.appendChild(script1);
script1.onload = function () {
const script2 = document.createElement("script");
script2.setAttribute("type", "text/javascript");
script2.setAttribute("referrerpolicy", "origin");
script2.setAttribute("src", "https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js");
document.head.appendChild(script2);
script2.onload = () => {
// 执行wx.config的逻辑
};
};
}
wx.config 方法 和 wx.agentConfig 方法如何使用
因为我自己在这一步上面卡了很久,所以把自己现在写的分享出来
// 这个api其实是我的接口地址,www.xxxx.com/api/
import { api } from "./request.api";
let obj = {
async registered() {
let token = uni.getStorageSync("token");
let data = await new Promise((res) => {
uni.request({
url: api + "work/GetOPenTenantDataConfig",
method: "get",
data: {
auth_token: token
},
success: ({ data }) => {
res(data.result);
}
});
});
wx.config({
beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.corpid, // 必填,企业微信的corpID
timestamp: data.timeStamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
wx.ready(() => {
obj.agentConfig(token);
});
wx.error(function (res) {
console.log(res);
});
},
async agentConfig(token) {
let data = await new Promise((res) => {
uni.request({
url: api + "work/GetOPenAgentDataConfig",
method: "get",
data: {
auth_token: token
},
success: ({ data }) => {
res(data.result);
}
});
});
wx.agentConfig({
corpid: data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: data.timeStamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名,见附录1
jsApiList: [],
success: (res) => {
console.log(res);
},
fail: (error) => {
console.log(error);
}
});
}
};
module.exports = obj;
user组件 我的需求是只需要显示名称就好了。
<template>
<ww-open-data type="userName" :openid="openid" />
</template>
<script>
export default {
props: ["openid"], // 特别提醒 这里的openid 其实就是用户的userid。后台以为需要userid转成openid。导致在这个小问题上,调试了很久。
mounted() {
WWOpenData.bind(document.querySelectorAll("ww-open-data"));
}
};
</script>
8 个评论
要回复文章请先登录或注册
易软
易软
易软
1***@qq.com
会飞的小白鼠
会飞的小白鼠
会飞的小白鼠
w***@126.com