uni-app 打开定位信息

let bool = false

			// android平台
			if (uni.getSystemInfoSync().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);
				bool = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)
			}
			if (bool === false) {
				uni.showModal({
					title: '提示',
					content: '请打开定位服务',
					success: ({
						confirm,
						cancel
					}) => {

						if (confirm) {
							// android平台
							if (uni.getSystemInfoSync().platform == 'android') {
								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);
								var main = plus.android.runtimeMainActivity();
								main.startActivity(intent); // 打开系统设置GPS服务页面
							}

							// ios平台
							if (uni.getSystemInfoSync().platform == 'ios') {
								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);
							}
						}

						// 用户取消前往开启定位服务
						if (cancel) {
							// do sth...
						}
					}
				});
			}
	getLocation() {
				uni.getLocation({
					type: 'wgs84',
					geocode: true,
					success: (res) => {
						this.lng = res.longitude;
						this.lat = res.latitude;
						this.address = res.address?Object.values(res.address).slice(1, Object.values(res.address).length -
							1).join(''):"";
						this.getDistanceHandler();
					},
					fail: (e) => {
						uni.showModal({
							title: '提示',
							content: '请打开定位服务',
							success: ({
								confirm,
								cancel
							}) => {
								if (confirm) {
									if (uni.getSystemInfoSync().platform == 'android') {
										let Intent = plus.android.importClass(
											'android.content.Intent');
										let Settings = plus.android.importClass(
											'android.provider.Settings');
										let intent = new Intent(Settings
											.ACTION_LOCATION_SOURCE_SETTINGS);
										let main = plus.android.runtimeMainActivity();
										main.startActivity(intent);
									}
								}
								if (cancel) {
									uni.navigateBack({
										delta: 1
									})
								}
							}
						});
					}
				})
			}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值