uniapp | Откройте iOS и Android для реализации разрешений на определение местоположения по GPS

Оказывается, действительно есть люди, которые удаляют весь развлекательный софт на своих мобильных телефонах, несмотря ни на что, и учатся день и ночь, лишь бы вернуться к себе изначальному, со светом в глазах и надеждой. Вы должны твердо верить, что каждая ваша мысль об обучении – это будущее, которое просит вас о помощи!

Лень - очень странная вещь. Она заставляет думать, что комфорт - это отдых и благо. На самом деле она приносит вам скуку, выгорание и депрессию. Она лишает вас надежды на будущее и изолирует вас от других. Дружба делает вас все более узкими. Задумчивый и сомневающийся в жизни!

1. Описание проблемы

Как uniapp определяет, включен ли GPS?Как использовать позиционирование, если пользователь не включает GPS?

2. Решение

Для решения подобных проблем наш обычный метод — включить GPS на мобильном телефоне. Но обычно пользователи не часто используют такого рода операции, поэтому потребуется некоторое время, чтобы настроить и выяснить, как включить GPS, поэтому нам нужно помочь пользователям разрешить интерфейсу мобильного телефона активно переходить на стартовую страницу GPS-позиционирования. , этот подход относительно эффективен, ОК

Обычно мы используем позиционирование мобильного телефона, и существует две системы, позволяющие различать Android и iOS, поэтому используемый здесь метод заключается в написании общедоступной функции для вызова и различении на основе оценки операционной системы мобильного телефона.

код показан ниже:

/*
 * 打开[ios/安卓]GPS定位权限
 */
export function openGps() {
    
    
	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, // 不显示取消按钮
				success() {
    
    
					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 if (system.platform === 'ios') {
    
    
		var cllocationManger = plus.ios.import("CLLocationManager");
		var enable = cllocationManger.locationServicesEnabled();
		var status = cllocationManger.authorizationStatus();
		plus.ios.deleteObject(cllocationManger);
		console.log("手机系统的定位没有打开");
		uni.showModal({
    
    
			title: '提示',
			content: '请打开定位服务功能',
			showCancel: false, // 不显示取消按钮
			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);
			}
		});
	}
}

3. Часто задаваемые вопросы

В1: Как использовать разрешение на позиционирование GPS в проекте?

uni.getLocation({
    
    
  type: 'gcj02', // 安卓需指定 type 为 gcj02 
  geocode: true, //设置该参数为true可直接获取经纬度及城市信息
  success: (res) => {
    
    
    console.log('当前位置的经度:' + res.longitude);
    console.log('当前位置的纬度:' + res.latitude);
  },
  fail: (error) => {
    
    
    openGps()	// 打开定位
  }
});

Acho que você gosta

Origin blog.csdn.net/weixin_54558746/article/details/125866054
Recomendado
Clasificación