本文通过一个实例讲述了微信小程序中wx.getLocation再授权问题的解决方案。分享给大家参考,如下:
首先,在页面外部定义一个公共函数来发送获取位置的请求
var getLocation=function(即){ wx . getLocation({ type : ' WGS 84 ',Success: function (res) {//经纬度var latitude=res.latitude var经度=res .经度var AK=that . data . akwx . request({ URL : ' https://API . map . Baidu.com/geocoder/v2/?ak=' aK '位置='纬度','经度'输出=json ',data: {},header : { ' content-type ' : ' application/JSON ' },success:函数(RES){ var city=RES . data . result . address component . city;that . setdata({ current city : city })wx . request({ URL : ' XXX ' city,data: {},header : { ' content-type ' : ' application/JSON ' },Success3360function (RES) {that。setdata ({country:res。data,})},}}),fail:function () {wx。showtoast ({title: '授权失败,Icon : '成功,持续时间: 1000})})然后,在页面外部的所需位置调用getLocation函数
wx . getsetting({ success :(RES)={ if(RES . authsetting[' scope . user location ']!=未定义的RES . authsetting[' scope . user location ']!=true) {//未经初始化进入页面,wx.showmodal未被授权({title : '授权当前位置',content: '需要获取您的地理位置,请确认授权,否则无法获取您需要的数据',' success 3360 function(RES){ if(RES . cancel){ that . setdata({ isshow city 3360 false })wx . show toast({ title : '授权失败',icon: '成功',duration :} else {wx.showToast({ title: '授权失败',图标: '成功',持续时间: 1000 })} } } })} else if(RES . auth setting['作用域。用户位置']==undefined) } else {//授权后默认加载getLocation(即);}}})上述过程的执行顺序如下:
1.首先加载wx.getLocation,弹出自己的授权框,如图所示
然后,单击确定进行授权。如果单击取消,您将取消授权。当您再次需要授权时,您将调用我们定制的模式框,如图所示
其次,点击【取消】关闭模态框,点击【确定】打开手机的地址授权设置,如图
最后,如果您直接点击左上角的返回箭头,您将取消授权。如果您先选择地理位置按钮,然后点击左上角的返回箭头,您将被成功授权,如图所示
希望本文对微信小程序的开发有所帮助。