Vue集成微信开发趟坑:公众号以及JSSDK相关
首先,类库方面,Vue中引入JSSDK的话,请引入weixin-js-sdk,而不是weixin-jsapi,原因在于weixin-jsapi不是最新版;还要注意JS接口安全域名,不需要http前缀,直接输入网址即可! 第二,开发流程官网已经说得很清楚,需要获取微信配置,然后才能调用微信的JSSDK相关API:
获取配置方面,由于路由采用hash模式,URL只有一个,因此直接传入#前面的部分即可: const getWxConfig = () => {
let currentUrl = encodeURIComponent(window.location.href.split("#")[0]);
然后服务端处理方面,签名算法,请注意:
然后注意前台用得字段名称为nonceStr,签名算法中拼接的为 第三,接口调用方面,微信下载图片等素材的接口已经变为如下的,而不是百度搜索出来的链接
第四,iOS网页适配方面,获取本地图片接口的时候,需要判断是否为WKWebview,用于兼容 iOS WKWebview 不支持 localId 直接显示图片的: <div class="cnblogs_Highlighter">
第五,获取地理位置描述,即将微信接口返回的坐标转换为真实的地址,需要借助腾讯地图webservice,注意这里需要使用gcj02坐标: wx.getLocation({
type: 'gcj02',// 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
let latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
let longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
let speed = res.speed; // 速度,以米/每秒计
let accuracy = res.accuracy; // 位置精度
Vue.jsonp('http://apis.map.qq.com/ws/geocoder/v1/',{
location: `${latitude},${longitude}`,coord_type: 5,key: 'xxxx',output: 'jsonp',callback: 'calllocation'
}).then(json => {
let {address,formatted_addresses} = json.result;
//处理数据
});
}
});
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |