小程序首页是用原生uniapp开发的,点击后进入到web-view嵌入页面,H5页面想调用微信原生api一直提示上面报错,appid填写的是小程序的,(没有公众号,只有一个小程序,H5网页和接口在一个服务器域名下),问题是啥呢?该如何解决啊
async initWxConfig() {
console.log('getJsapiSignature', this.$route);
// 根据url调用接口获取微信鉴权相关数据,注意url发生变化就需要创新获取鉴权
let { data, code } = await http.getJsapiSignature({ url: location.href })
console.log('鉴权', data, code)
if (code === '0') {
// 通过wx.config配置
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名
jsApiList: [
// 选择图片
"chooseImage",
// 获取位置
"getLocation",
// 获取qrcode
"scanQRCode",
] // 必填,需要使用的JS接口列表
});
return
wx.ready(function () {
// Toast('走到ready了')
console.log('微信配置成功');
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.scanQRCode({
onlyFromCamera: true,
success: function (res) {
console.log('扫码的结果', res);
if (res) {
// 扫码获得结果后获取 personId,然后根据 personId 获取详情信息,同时调用微信 api获取当前位置。
let data = JSON.parse(res.data)
this.personId = data.personId
this.deliveryGiveByQrCodePrepare()
}
}
})
});
wx.error(function (res) {
return
Toast('error', res)
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
console.log('错误了!!!!', res);
});
}
},

JS-SDK是公众号/服务号的能力,你需要去申请一个公众号或服务号,在这个账号后台配置【JS接口安全域名】,代码里面也要改成这个账号的appid。
不能用小程序的