这里是JS-SDK说明文档
npm install weixin-js-sdk --save
import wx from 'weixin-js-sdk';
console.log(wx)
{config: ƒ, ready: ƒ, error: ƒ, checkJsApi: ƒ, onMenuShareTimeline: ƒ, …}
addCard: ƒ (e)
checkJsApi: ƒ (e)
chooseCard: ƒ (e)
chooseImage: ƒ (e)
chooseWXPay: ƒ (e)
...
控制台显示以上代码表示引入成功.
全部须要使用JS-SDK的页面必须先注入配置信息,不然将没法调用
wx.config({ debug: true, // 开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的惟一标识,管理公众号页面能够获取 timestamp: '', // 必填,生成签名的时间戳,后台返回 nonceStr: '', // 必填,生成签名的随机串,后台返回 signature: '',// 必填,签名,后台返回 jsApiList: ['openLocation','getLocation'] // 必填,须要使用的JS接口列表,写入本身用到的接口名称 });
而后等待配置完成后,在ready中使用微信提供的APIjavascript
wx.ready(function(){ wx.getLocation({ type: 'wgs84', // 默认为wgs84的gps坐标,若是要返回直接给openLocation用的火星坐标,可传入'gcj02' success: function (res) { var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90 var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。 var speed = res.speed; // 速度,以米/每秒计 var accuracy = res.accuracy; // 位置精度 } }); })
首先咱们不能用chorme来调试这个config,没有任何反应
而后网上各类搜基本能够确实是URL的问题css
微信规定 签名的URL要与当前页面URL一致!
解决方案看这个问题,将此页面的URL 动态送给后台,生成签名.html
安卓能够直接在网页中这么获取当前URL:vue
location.href.split('#')[0]
IOS就不行,你只能获取到你刚进入页面的URL;
解决的思路大概是
1.首先要判断是不是IOS系统
2.若是是IOS 咱们缓存一个入口URL而后注册,若是不是IOS直接使用location.href.split('#')[0]URL进行注册java
---config.js 全局定义一个变量 global.entryUrl = location.href.split('#')[0];
伪代码以下:git
mounted(){ let url; if (publicFun.isIOS()) {//判断是不是IOS url = this.PUBLICCONFIG.entryUrl; } else { url = location.href.split('#')[0]; } //传参给后台 获取 appId/timestamp/nonceStr/signature api.getJsConfig({ "url":url },{ success:function (res) { //获取参数成功后配置 wx.config({ debug: true, appId: res.data.appId, timestamp:res.data.timestamp , nonceStr:res.data.nonceStr, signature: res.data.signature, jsApiList: ['openLocation','getLocation'] }); } }) //微信配置成功 wx.ready(function(){ console.log("配置成功") wx.getLocation({ type: 'wgs84', success: function (res) { var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90 var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。 var speed = res.speed; // 速度,以米/每秒计 var accuracy = res.accuracy; // 位置精度 console.log(latitude); this.latitude = latitude } }); }) // config信息验证失败会执行error函数,如签名过时致使验证失败,具体错误信息能够打开config的debug模式查看,也能够在返回的res参数中查看,对于SPA能够在这里更新签名。 wx.error(function(res){ }); }
全部接口调用都必须在config接口得到结果以后,config是一个客户端的异步操做
所以咱们须要将定时 写在wx.ready 方法里面,而不须要每次调用微信API的时候 wx.config一次.
wx.config({ //配置 }) wx.ready({ //放到这里 是能够滴 setInterval(timer,5000) })
高德地图API文档
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.14&key=您申请的key值"></script>
建立一个容器,给一个ID名字github
<div id="map" class="page-location-map"></div>
给容器加一个样式web
.page-location-map{ width: 100%; height: 100%; }
在组将mounted方法中建立地图实例vue-router
let Map = new AMap.Map('map', { zoom: 11,//级别 center: [116.397428, 39.90923],//中心点坐标 viewMode: '3D' //使用3D视图 })
运行项目后,你就会看到一个北京天安门的地图了.接下来你应该知道怎么作了 对吧?npm
参考
1. vue-router的history模式在IOS微信分享下url不变的坑以及解决办法
2. 微信公众平台, config:invalid signature一直爆这个错误,求教如何解决?