uni-app uni.chooseLocation接口在电脑版微信小程序内无法使用
uni-app uni.chooseLocation接口在电脑版微信小程序内无法使用
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 ltsc 1809 | HBuilderX |
示例代码:
<view class="gui-form-item gui-border-b gui-bg-white">
<text class="gui-form-label">工作地点</text>
<view class="gui-form-body" style="position: relative;">
<input type="text" class="gui-form-input" v-model="formData.address" name="address"
disabled="disabled" placeholder="请选择工作地点" />
<view style="position: absolute;top: 0;left: 0;width: 480rpx;height: 80rpx;z-index: 99;"
@tap="chooseLocation"></view>
</view>
<text class="gui-form-icon gui-icons gui-text-center gui-color-gray"
@tap="chooseLocation"></text>
</view>
chooseLocation() { var that = this uni.chooseLocation({ success: (data) => { that.formData.address = data.address + “【” + data.name + “】” that.formData.longitude = data.longitude that.formData.latitude = data.latitude } }) }
操作步骤:
- 从开发文档中复制示例代码,点击输入框和图标触发调用接口方法,回调方法内获取选取的结果
预期结果:
- 用户进入地图选址,选择好位置后,奖金为度和地址名称返回
实际结果:
- 电脑版用户无法进入地图选址
bug描述:
在手机设备和开发者工具内调用uni.chooseLocation方法都是可以正常打开地图选址页面,但是在微信电脑版打开小程序就无法使用uni.chooseLocation方法,无法打开地图选址页面
更多关于uni-app uni.chooseLocation接口在电脑版微信小程序内无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
找到原因了吗
我也遇到了这个问题
电脑端打不开 点击没有反应
是有的能打开有的不能打开
更多关于uni-app uni.chooseLocation接口在电脑版微信小程序内无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我也遇到了这个问题,求解
看控制台有没有报错信息
在微信电脑版小程序中,uni.chooseLocation 接口确实无法使用。这是因为微信官方对电脑版小程序的API支持存在限制,部分依赖移动设备硬件或系统功能的API(如地理位置选择、摄像头、扫码等)在电脑端不被支持。
原因分析:
- 平台差异:微信电脑版小程序环境基于桌面操作系统,缺乏移动端的原生地图组件支持。
- API兼容性:
uni.chooseLocation底层调用的是微信小程序的wx.chooseLocation接口,而该接口在电脑版中被禁用(返回fail错误)。
解决方案:
- 条件判断:在调用前检测运行环境,如果是电脑端则提示用户或切换为备用方案(如手动输入地址)。
chooseLocation() { // 判断是否为电脑端 const systemInfo = uni.getSystemInfoSync(); const isPC = systemInfo.platform === 'windows' || systemInfo.platform === 'mac'; if (isPC) { uni.showToast({ title: '电脑端暂不支持地图选点', icon: 'none' }); return; } uni.chooseLocation({ success: (data) => { this.formData.address = data.address + "【" + data.name + "】"; this.formData.longitude = data.longitude; this.formData.latitude = data.latitude; } }); }

