当前位置: 首页 > news >正文

uniapp检测手机是否打开定位权限Vue3-直接复制粘贴

安卓示例:

苹果示例:

代码实现(vue3写法):

const checkGPS = ()=>{
        console.log('开始监听GPS状态');
        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)) {
                console.log('gps未开启');
  	    		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服务页面
  	    			}
  	    		});
				return false
  	    	}else{
                console.log('gps已开启');
                uni.getLocation({
                  type: "gcj02", // 返回可以用于uni.openLocation的经纬度
                  success: async(res) => {
                    console.log('经纬度',res);
					try {
						// 自己的逻辑代码(调接口)
					} catch (err) {
						console.log('err',err);
					}	
                  },
                });
				return true
            }
  	    } else if (system.platform === 'ios') {
            var cllocationManger = plus.ios.import('CLLocationManager');
			var enable = cllocationManger.locationServicesEnabled();
			var status = cllocationManger.authorizationStatus();
			plus.ios.deleteObject(cllocationManger);
			if (enable && status != 2) {
				console.log('手机系统的定位已经打开');
	            uni.getLocation({
                  type: "gcj02", // 返回可以用于uni.openLocation的经纬度
                  success: async(res) => {
                    console.log('经纬度',res);
					try {
						// 自己的逻辑代码(调接口)
					} catch (err) {
						console.log('err',err);
					}
                  },
                });
				return true
			} else {
				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("prefs:root=LOCATION_SERVICES");
						// var setting2 = NSURL2.URLWithString("App-Prefs:root=LOCATION_SERVICES");
						// var setting2 = NSURL2.URLWithString("app-settings");
						var setting2 = NSURL2.URLWithString('App-Prefs:root=Privacy&path=LOCATION');
						// var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION_SERVICES");
						application2.openURL(setting2);
						plus.ios.deleteObject(setting2);
						plus.ios.deleteObject(NSURL2);
						plus.ios.deleteObject(application2);
					}
				});
				return false
			}
  	    }
    }

如果要换成vue2的写法:

const checkGPS = () => {} 改成 checkGPS(){}


文章转载自:
http://adrenergic.alwpc.cn
http://biocatalyst.alwpc.cn
http://arbitrational.alwpc.cn
http://avp.alwpc.cn
http://allose.alwpc.cn
http://chalcid.alwpc.cn
http://abducent.alwpc.cn
http://ambulacrum.alwpc.cn
http://alamanni.alwpc.cn
http://cedar.alwpc.cn
http://ax.alwpc.cn
http://bathed.alwpc.cn
http://chamois.alwpc.cn
http://archaist.alwpc.cn
http://calm.alwpc.cn
http://acheb.alwpc.cn
http://autogamous.alwpc.cn
http://abetter.alwpc.cn
http://acylic.alwpc.cn
http://bitonal.alwpc.cn
http://assembled.alwpc.cn
http://beachscape.alwpc.cn
http://apparition.alwpc.cn
http://ceti.alwpc.cn
http://algal.alwpc.cn
http://atopic.alwpc.cn
http://auricled.alwpc.cn
http://attitudinize.alwpc.cn
http://balneology.alwpc.cn
http://belaud.alwpc.cn
http://www.dtcms.com/a/11831.html

相关文章:

  • 实现Kruskal算法连通游戏地图地牢
  • 设计模式 3 单例模式
  • JAVA后端程序拉取私人仓库的npm包并将该程序打包成jar包
  • XSS DOM破坏实战案例
  • 基于x86 平台opencv的图像采集和seetaface6的人脸跟踪功能
  • 设备运维故障排查与修复技巧
  • 笔记本一线品牌有哪些
  • 【数据结构】数据结构 知识回顾
  • Java实现三方登录---微信登录
  • 去雾去雨算法
  • ES存量数据迁移优化措施
  • 谷粒商城实战笔记-236~238-商城业务-购物车-环境搭建
  • 用Python插入SVG到PDF文档
  • aspose-words将tinymce中的换页符转换为word的换页符
  • Nginx变量概述
  • 宽压宽频(35V/45V/65V)50KHZ-3MHZ双向同步降压升压LED驱动器QFP32封装
  • C语言一笔画迷宫
  • 什么是堡垒机
  • Spring Boot 中如何实现定时任务
  • C++ //练习 19.13 定义一个类型,使其可以表示指向Sales_data类的bookNo成员的指针。
  • 在win7和python3.8上安装xlwings
  • Oracle 同义词SYNONYM 的使用
  • Node.js中的ArrayBuffer与Buffer对比分析
  • 头文件顺序
  • linux安装elasticsearch
  • AI大模型日报#0822:OpenAI推GPT-4o微调服务、混元大模型负责人专访
  • [mongodb][配置]MongoDB中限制内存
  • Scratch的诞生:开启编程世界的大门
  • 使用TF-IDF进行情感分析的实战指南
  • JWT(JSON Web Token)工作原理及特点