如题,客户反馈微信小程序点击定位无反应,打不开地图。

自己手机上线时测试过定位没有问题,正常在没有获取到位置信息授权或者授权被拒绝的情况下,点击定位小程序会弹出一个自定义的弹框。

微信图片_20200720172328.jpg
微信图片_20200720172328.jpg

这个弹框是自定义的,在每次获取相关权限的时候,若本地存储的权限中没有该权限,说明没获取到权限,会弹出该提示框。点击设置打开小程序设置界面。

微信小程序主要使用的信息:用户信息、位置信息、订阅信息。如果请求过,就会在设置中展示。具体信息项有独立开关选项。

回到关键问题,点击定位无反应,模拟器测试 OK,真机测试 OK,关闭位置信息测试有弹框 OK。

突然想到手机系统层级对应用的权限可能没有开启。安卓手机和苹果手机都有对每个应用设置,苹果界面如下:

微信图片_20200720173813.jpg
微信图片_20200720173813.jpg

正常是使用 APP 期间允许,如果改成了不允许,则微信本身就没有定位权限。而小程序是在微信应用基础上的,跟微信进行通讯,就更不会有权限了。

这里其实应该有弹框提示,不确定是否可以根据微信小程序接口返回值判断。点击定位小程序右上角菜单标记会有变化,图标会变成箭头定位标志然后恢复,这说明是微信 app 本身权限未打开。

打开微信定位权限,解决!