1. 什么是小程序的“附近”功能
小程序的“附近”功能是指可以将用户的位置信息和周围商家/服务提供者的信息进行匹配,从而显示在用户的“附近”。这个功能对于有定位需求的用户来说非常方便,可以帮助用户快速找到周边的商家/服务提供者,例如餐厅、酒店、修车店等等。
2. “附近”功能不显示的可能原因
2.1 未获得用户授权
小程序需要用户授权才能获取其位置信息,如果用户没有授权或者授权过期,小程序将无法获取位置信息,导致“附近”功能无法使用。在开发者工具中模拟用户位置信息可以使用以下代码:
// 模拟位置信息(纬度、经度和速度自己设置)
wx.setStorageSync('location', {
latitude: 39.914930,
longitude: 116.499918,
speed: -1
})
其中setStorageSync是微信提供的本地存储接口,将模拟的位置信息存储在localStorage里面,让小程序可以获取到。
2.2 小程序未开启地理位置服务
在小程序设置中,用户可以选择是否开启地理位置服务,如果未开启,小程序就无法获取用户位置信息,从而无法使用“附近”功能。建议开发者在小程序的入口页面提醒用户开启地理位置服务。
2.3 商家/服务提供者的位置信息未上传
小程序的“附近”功能需要依赖商家/服务提供者上传位置信息,如果商家/服务提供者没有上传位置信息,或者位置信息不准确,将无法显示在用户的“附近”列表中。因此,建议商家/服务提供者在小程序入驻时注意上传准确的位置信息。
2.4 小程序未获得定位权限
在iOS 14及以上版本和Android 11及以上版本中,操作系统强制要求小程序需要用户授权后才能使用定位功能。如果小程序未获得定位权限,就无法使用“附近”功能。与2.1类似,在开发者工具中模拟用户授权可以使用以下代码:
// 模拟用户授权(iOS 14及以上版本)
wx.getSetting({
success: (res) => {
const setting = res.authSetting
setting['scope.userLocation'] = true
wx.setStorageSync('setting', setting)
}
})
// 模拟用户授权(Android 11及以上版本)
wx.getSystemInfo({
success: (res) => {
if(res.platform === 'android' && parseInt(res.system.substr(8)) >= 11) {
wx.getPermission({
name: 'android.permission.ACCESS_FINE_LOCATION',
success: () => {
wx.setStorageSync('permission', {
'android.permission.ACCESS_FINE_LOCATION': true
})
}
})
}
}
})
3. 怎样优化“附近”功能的使用体验
3.1 增加UI界面
优化“附近”功能的使用体验,首先需要增加UI界面,提供列表形式和地图形式的展示方式,让用户可以更加直观地了解周边商家和服务提供者的信息。
3.2 重要信息突出显示
为了让用户更加快速地了解周边商家和服务提供者的信息,可以将重要信息突出显示。例如,在列表中可以将评分、营业时间等信息放在前面,让用户更容易看到;在地图上可以使用不同的图标或者颜色来区分不同类型的商家和服务提供者,增加用户的识别度。
3.3 优化搜索排序
“附近”功能的搜索结果是按照距离排序的,但是有时候距离并不是用户最关心的因素。为了增加用户满意度,可以在搜索结果中增加其他的排序因素,例如评分、销量等等,让用户根据自己的需求选择合适的商家和服务提供者。
3.4 优化用户授权流程
优化用户授权流程可以提高用户的授权率,从而增加“附近”功能的使用量。开发者可以在小程序的入口页面提醒用户授权位置信息,或者在需要使用位置信息的时候再进行授权,让用户有更加灵活的选择。
3.5 增加位置校准功能
位置校准功能可以帮助商家和服务提供者准确地标记位置信息,从而提高“附近”功能的使用体验。开发者可以在小程序中增加位置校准功能,让商家和服务提供者可以在地图上自行标记位置或者通过扫描二维码等方式进行位置校准。
4. 总结
“附近”功能是小程序的一个非常实用的功能,可以帮助用户快速找到周边商家和服务提供者。但是,在使用“附近”功能的时候可能会遇到一些问题,开发者需要针对不同的问题进行处理和优化,提高用户的使用体验和满意度。