同时兼容小程序和app获取经纬度

const requestLocation = () => {
	uni.getLocation({
		success: (res) => {
			vdata.lng = res.longitude;
			vdata.lat = res.latitude;
			console.log(vdata);
			uni.showToast({
				title: '位置获取成功',
				icon: 'none'
			});
		},
		fail: (err) => {
			uni.showToast({
				title: '位置获取失败',
				icon: 'none'
			});
			console.error('获取位置失败: ', err);
		}
	});
};
const getCurrentLocation = () => {
	// #ifdef APP-PLUS
	console.log('APP环境');
	checkPermission();
	// #endif
	// #ifdef H5 || MP-WEIXIN
	console.log('MP-WEIXIN环境');
	wxcheckPermission();
	// #endif
	console.log(process.env.NODE_ENV, 'process.env.NODE_ENV');
};
const checkPermission = () => {
	// 检查权限
	const locationManager = plus.android.importClass('android.location.LocationManager');
	const Context = plus.android.importClass('android.content.Context');
	const main = plus.android.runtimeMainActivity();
	const lm = main.getSystemService(Context.LOCATION_SERVICE);

	if (!lm.isProviderEnabled(locationManager.GPS_PROVIDER)) {
		uni.showModal({
			title: '提示',
			content: '请在系统设置中打开GPS定位服务',
			showCancel: false
		});
		return;
	}

	plus.navigator.requestPermission(
		'ACCESS_FINE_LOCATION',
		(result) => {
			if (result === 'granted') {
				requestLocation();
			} else {
				uni.showModal({
					title: '提示',
					content: '需要获取您的地理位置,请到设置页面打开授权',
					success: (res) => {
						if (res.confirm) {
							// 引导用户打开设置页面
							plus.runtime.openSystemSetting();
						}
					}
				});
			}
		},
		(error) => {
			console.error('Request permission error: ', error);
		}
	);
};
const wxcheckPermission = () => {
	uni.getSetting({
		success: (res) => {
			if (res.authSetting['scope.userLocation'] !== undefined && !res.authSetting['scope.userLocation']) {
				// 用户之前拒绝了位置权限
				uni.showModal({
					title: '授权提示',
					content: '需要获取您的地理位置,请到设置页面打开授权',
					success: (res) => {
						if (res.confirm) {
							uni.openSetting({
								success: (res) => {
									if (res.authSetting['scope.userLocation']) {
										// 用户重新授权,获取位置
										requestLocation();
									}
								}
							});
						}
					}
				});
			} else if (res.authSetting['scope.userLocation'] === undefined || res.authSetting['scope.userLocation']) {
				// 用户已经授权或首次授权,直接获取位置
				requestLocation();
			}
		}
	});
};
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇怪的农民

你打赏的是无话不说

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值