最近用uniapp对接高德地图 配置都填好了,真机调试uni.chooseLocation弹出位置选择,但如果没开启gps是不会走fail,需要提前判断是否开启gps,百度也是找了很久没有相关代码,问chatgpt也只是说了在小程序里打开设置的代码 openSetting app里调用是会报错,下面是在uniapp里打开系统定位设置,判断安卓和苹果。
let system = uni.getSystemInfoSync(); // 获取系统信息if (system.platform === 'android') { // 判断平台var context = plus.android.importClass("android.content.Context");var locationManager = plus.android.importClass("android.location.LocationManager");var main = plus.android.runtimeMainActivity();var mainSvr = main.getSystemService(context.LOCATION_SERVICE);if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {uni.showModal({title: '提示',content: '请打开定位服务功能',showCancel: false, // 不显示取消按钮confirmText: "去打开", // 确认按钮文字 confirmColor:'#09c499',//删除字体的颜色success:async function () {if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {var Intent = plus.android.importClass('android.content.Intent');var Settings = plus.android.importClass('android.provider.Settings');var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);main.startActivity(intent); // 打开系统设置GPS服务页面}}})}else{····}} else if (system.platform === 'ios') {console.log("苹果");var cllocationManger = plus.ios.import("CLLocationManager");var enable = cllocationManger.locationServicesEnabled();var status = cllocationManger.authorizationStatus();plus.ios.deleteObject(cllocationManger);if (enable && status != 2) {····} else {uni.showModal({title: '提示',content: '请打开定位服务功能',showCancel: false, // 不显示取消按钮confirmText: "去打开", // 确认按钮文字 confirmColor:'#09c499',//删除字体的颜色success() {var UIApplication = plus.ios.import("UIApplication");var application2 = UIApplication.sharedApplication();var NSURL2 = plus.ios.import("NSURL");var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION");application2.openURL(setting2);plus.ios.deleteObject(setting2);plus.ios.deleteObject(NSURL2);plus.ios.deleteObject(application2);}});}}}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...

