1、uni-app 项目跑起来
注意:测试号公众号的JS接口安全域名不能填 localhost,看步骤二配置
2、登录测试号公众号
记住JS接口安全域名人家叫你写的是域名就一定不要带协议(http/https)
否则报错:
errMsg: "config:fail,Error: 系统错误,错误码:40048,invalid url domain
3、js sdk 使用代码
这里使用的是依赖包 npm 下载
import jweixin from 'jweixin-module'
import http from '@/common/vmeitime-http/interface.js'
// 调用后台接口,获取js sdk 所需配置数据
// 传参:url 当前页面地址
// 返回数据 appId,nonceStr, timestamp, signature,
function getWeiXinJsConfig(url) {
return http.request({
url: 'https://---------/wxJssdk/getJssdk',
method: 'GET',
data: { url: url }
})
}
// 封装
export function configWeiXin(url,callback) {
getWeiXinJsConfig(url).then(result => {
let apiList = [ // 可能需要用到的能力 需要啥就写啥。多写也没有坏处
'onMenuShareAppMessage',
'onMenuShareTimeline',
'hideOptionMenu',
'showOptionMenu',
'chooseWXPay',
'checkJsApi',
'openLocation',
'getLocation'
];
let info = {
debug: false, // 调试,发布的时候改为false
appId: result.data.appId,
nonceStr: result.data.nonceStr,
timestamp: result.data.timestamp,
signature: result.data.signature,
jsApiList: apiList
};
jweixin.config(info);
jweixin.error(err => {
console.log('config fail:', err);
});
jweixin.ready(res => {
if (callback) callback(jweixin);
});
}).catch(err => {
console.log('--err--', err)
})
}
// 调用
<script>
import {configWeiXin} from '@/common/utils/js-sdk.js'
export default {
data() {
return {}
},
onLoad() {},
methods: {
getList() {
const url = encodeURIComponent(location.href.split('#')[0])
configWeiXin(url,jweixin => {
console.log(jweixin);
jweixin.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
console.log(res)
let localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
});
});
}
}
}
</script>
在微信开发者工具测试效果
4、扩展-配置manifest.json
h5 页面配置 解决跨域
附上代码块:
"h5" : {
"title" : "Test",
"devServer": {
"port": 8080,
"disableHostCheck": true,
"proxy": {
"/": {
"target": "",
"changeOrigin": true,
"secure": false,
"pathRewrite": {
"^/": "/"
}
}
}
},
"router" : {
"mode" : "history"
}
}
未完待续~