一、引入微信jssdk(需要先配置安全域名)
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript" charset="utf-8"></script>
附:微信官方文檔
二、通過config注入權限驗證配置
$.ajax({
type: "post",
url: $http + "url", //後臺接口
xhrFields: {
withCredentials: true
},
success: function(res) {
wx.config({
appId: res.data.app_id, // 必填,企業號的唯一標識,此處填寫企業號corpid
timestamp: res.data.timestamp, // 必填,生成簽名的時間戳
nonceStr: res.data.noncestr, // 必填,生成簽名的隨機串
signature: res.data.sign, // 必填,簽名,見附錄1
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'hideMenuItems',
'showMenuItems',
'hideAllNonBaseMenuItem',
'showAllNonBaseMenuItem',
'translateVoice',
'startRecord',
'stopRecord',
'onRecordEnd',
'playVoice',
'pauseVoice',
'stopVoice',
'uploadVoice',
'downloadVoice',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'getNetworkType',
'openLocation',
'getLocation',
'hideOptionMenu',
'showOptionMenu',
'closeWindow',
'scanQRCode',
'chooseWXPay',
'openProductSpecificView',
'addCard',
'chooseCard',
'openCard'
] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
});
wx.ready(function() {
// config信息驗證後會執行ready方法,所有接口調用都必須在config接口獲得結果之後,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中。
//例如,進入首頁需要獲取地理位置,需要在這裏寫wx.getLocation
});
wx.error(function(res) {
// config信息驗證失敗會執行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對於SPA可以在這裏更新簽名。
});
}
});
三、寫需要用到的權限
例如:獲得地理位置
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; // 位置精度
var dingwei = res.latitude + "," + res.longitude
sessionStorage.setItem("dingwei", dingwei)
}
});
例如:掃描二維碼
wx.scanQRCode({
needResult: 1, // 默認爲0,掃描結果由微信處理,1則直接返回掃描結果,
scanType: ["qrCode", "barCode"], // 可以指定掃二維碼還是一維碼,默認二者都有
success: function(res) {
var result = res.resultStr; // 當needResult 爲 1 時,掃碼返回的結果
window.location.href = result
}
});