這是測試微信DEMO的流程圖。
按照官方文檔建立好微信連接與微信接口配置後,即可調用接口。
1.通過配置來加入需要調用的接口,這裏加入了獲取地理位置的接口。
wx.config({
debug: false,
appId: appId,
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature,
jsApiList: [
'openLocation',
'getLocation'
]
});
2.我的目標是通過微信JS接口獲取地位位置的經緯度,然後通過騰訊地圖API中根據經緯度轉換成詳細地址的方法進行轉換從而將地址顯示出來。
wx.getLocation({
type: 'gcj02',
success: function (res) {
//成功後拿到經緯度
var lat = res.latitude; // 緯度,浮點數,範圍爲90 ~ -90
var lng = res.longitude // 經度,浮點數,範圍爲180 ~ -180。
var latLng = new qq.maps.LatLng(lat, lng);
//1.創建地址解析類對象,並且寫好檢索成功後的回調函數
geocoder = new qq.maps.Geocoder({
complete: function (result) {
//拿到市縣街道,但addressComponents.streetnumber有問題拿不到
signin_info = result.detail.addressComponents.province + result.detail.addressComponents.city + result.detail.addressComponents.district + result.detail.addressComponents.street;
attendance_index.save_signin(signin_info_time,signin_info);
}
})
geocoder.getAddress(latLng);
},
cancel: function (res) {
alert('用戶拒絕授權獲取地理位置');
}
})
3.騰訊地圖API有一個BUG,不知道是我搞錯的問題還是真BUG,addressComponents.streetnumber是拿不到的!所以如果像我這樣分開取地址的話最後的街道部分是取不到的!但是,API中有一個方法直接把最詳細的地址返回回來,但是根本不想要這麼長啊!
4.signin_info就是最後結果。