- 需求的场景描述(希望解决的问题)
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就没问题了··· 可能是重名吧 ···