- 需求的场景描述(希望解决的问题)
let AppData = App_Instance.globalData; Page({ /** * 页面的初始数据 */ data: { }, //发起授权,只执行一次 重新授权需要引导用户点击设置授权项 authorization: function () { console.log( "开始调用Authorization" ); let that = this ; try { let is_scope_userLocation = wx.getStorageSync( 'is_scope_userLocation' ); if (is_scope_userLocation == true ) { console.log( 'Hello ' ); console.log(App_Instance); App_Instance.getLatLng(); } else { //发起 预授权 wx.authorize({ scope: 'scope.userLocation' , success: function (res) { //同意 wx.setStorage({ key: 'is_scope_userLocation' , data: true , }); App_Instance.getLatlng(); //直接调用接口 }, fail: function (res) { console.log( "用户拒绝授权" ); wx.showToast({ title: '请手动打开设置' , icon: 'loading' , duration: 1500 }) } }) } } catch (e){ console.log(e); } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { this .authorization(); //进入页面时发起【预】授权 }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } }) |
为什么 定义了getLatlng方法 还是显示 类型错误?
- 希望提供的能力
方法是没问题的。第一次打开 是对的。第二次就提示 类型错误·
把方法写到globalData里试试....
看下getLatLng方法
//【需要授权】获取用户位置经纬度
getLatlng:
function
() {
console.log(
"call getLatlng Method - 5"
);
let that =
this
;
wx.getLocation({
type:
'gcj02'
,
success:
function
(res) {
console.log(res);
//持久化:当前用户经纬度信息
wx.setStorageSync(
'user_lat'
,res.latitude);
wx.setStorageSync(
'user_lng'
, res.longitude);
//获取逆地址解析 信息
that.reverseGeocoder(res.latitude+
','
+res.longitude);
//获取路线规划
//that.getLocationLine();
},
fail:
function
(e){
console.log(e);
}
})
},
已解决
只要更换getLatlng的函数名就行了。 我换成getUserLatLng就没问题了··· 可能是重名吧 ···