小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在App的onLaunch()调用wx.get location获取当前位置经纬度,设置为全局变量,在其他页面获取不了!!!是怎么回事!求解!!!
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请不要在同步的代码里,访问这个被某个未知时刻异步设置的值。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
在其他页面试过同样获取经纬度,并赋值!能立即获取到!!!不存在延迟问题!!
这样写,没错吧?PS:学习中!
App({
onLaunch: function () {
// 展示本地存储能力
var that=this
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户信息
wx.getSetting({
if (res.authSetting['scope.userLocation']) {
wx.getLocation({
success: function (res) {
that.globalData.lat = res.latitude,
that.globalData.long = res.longitude
},
globalData: {
userInfo: null,
lat:null,
long:null
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
lat: app.globalData.lat,
long: app.globalData.long
<view>{{lat}}</view>
<view>{{long}}</view>
虽然 onLaunch 马上会执行,但是由于获取地理位置的速度不快,可能还是有几率拿不到这个值,您可以做个实验,setTimeout 二十秒再去取这个值,看看是不是就有了。
App的onLaunch不是,打开小程序之后就会执行的吗?之前我以为是没授权的问题,后来把授权成功后,再去获取!!在其他页面访问,这个值还是空的!!!用同样的写法,我去获取手机系统信息,例如把windowsheight 设置全局变量,在其他页面访问,倒是可以取到!!
getLocation 是异步的函数。请确保在其他界面访问此变量时,此函数已执行并成功赋值。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请不要在同步的代码里,访问这个被某个未知时刻异步设置的值。
在其他页面试过同样获取经纬度,并赋值!能立即获取到!!!不存在延迟问题!!
这样写,没错吧?PS:学习中!
App({
onLaunch: function () {
// 展示本地存储能力
var that=this
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userLocation']) {
wx.getLocation({
success: function (res) {
that.globalData.lat = res.latitude,
that.globalData.long = res.longitude
},
})
}
}
})
},
globalData: {
userInfo: null,
lat:null,
long:null
}
})
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
lat: app.globalData.lat,
long: app.globalData.long
}
<view>{{lat}}</view>
<view>{{long}}</view>
虽然 onLaunch 马上会执行,但是由于获取地理位置的速度不快,可能还是有几率拿不到这个值,您可以做个实验,setTimeout 二十秒再去取这个值,看看是不是就有了。
App的onLaunch不是,打开小程序之后就会执行的吗?之前我以为是没授权的问题,后来把授权成功后,再去获取!!在其他页面访问,这个值还是空的!!!用同样的写法,我去获取手机系统信息,例如把windowsheight 设置全局变量,在其他页面访问,倒是可以取到!!
getLocation 是异步的函数。请确保在其他界面访问此变量时,此函数已执行并成功赋值。