1.在微信小程序中很多场景都需要用户授权,例如用户相册权限,位置权限...,当需要将海报保存在相册就会用到相册权限(海报参考),在城市定位,店家列表由远及近排序就会用到位置权限,这里主要考虑位置权限使用场景。
2.主体思路,进页面立马弹出微信授权位置弹窗,提示用户授权位置,授权成功则会获取用户地理经纬度坐标,根据经纬度信息请求接口,获取城市名称。如果用户拒绝授权,则拿不到用户位置,展示未知(当然了,在现实开发中一般会有默认城市)。在旁边放一个重新获取按钮,如果用户授权过了就不用弹窗提示了,如果进页面时用户拒绝了,此时弹窗提示用户是否授权,授权则打开授权页面让用户授权,授权成功则会拿到用户的位置。(因为用户的授权页是通过wx.openSetting打开的新页面,如果获取位置的动作放在onload里back回来后不会重新获取,所以建议放onshow里)。
3.代码
3.1wxml
<view class='btn'>
<block wx:if="{
{city}}">
<view>城市名</view>
</block>
<block wx:else>
未知
</block>
</view>
<view class='btn' catchtap='re_get_city'