uniapp - APP判断是否开启位置信息服务判断是否授权位置信息权限
当我们在使用uni.getLocation
的API时,会发现用户并没有开启微信信息服务或者没有授权位置信息权限,而导致回调fail
,那么就需要去判断并引导用户前往开启。
判断是否开启位置信息服务(安卓Android)
checkOpenGPSService() {let systemType = uni.getSystemInfoSync().platform;// 安卓if (systemType === '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() {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); // 打开系统设置定位服务功能页面} else {console.log('定位服务功能已开启');}}});}}
}
当我做到需要向用户发起授权请求,以为可以用uni.authorize
来处理,But!App并不支持!再注意到下面那段话:App平台的授权判断方式,另见:https://ext.dcloud.net.cn/plugin?id=594,那就好办了。
以下是使用插件的方式:
文档:App权限判断和提示
先引入插件
import permision from "@/js_sdk/wa-permission/permission.js";
检查是否开启位置信息权限
// 检查是否开启位置信息权限
async checkOpenPermission() {let result = await permision.requestAndroidPermission('android.permission.ACCESS_FINE_LOCATION');if (result == 1) {console.log("已获得授权");} else {console.log("未获得权限");uni.showModal({title: '提示',content: '请开启位置信息权限',showCancel: false,success() {permision.gotoAppPermissionSetting(); // 打开权限设置界面}});}
},
检查是否开启位置信息服务
// 检查是否开启位置信息服务
checkOpenService() {let result = permision.checkSystemEnableLocation();if(!result) {uni.showModal({title: '提示',content: '请打开定位服务功能',showCancel: false,success() {var main = plus.android.runtimeMainActivity();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 {console.log('已开启定位服务功能');}
},
uniapp - APP判断是否开启位置信息服务判断是否授权位置信息权限相关推荐
- uniapp微信小程序:点击按钮先判断用户是否授权位置信息、用户位置信息授权、进入下一个页面
文章目录 前言 一.创建点击事件的方法 二.判断用户是否授权位置 三.弹出位置授权框 四.坐标到坐标所在位置的文字描述的转换(逆地址解析) 五.拒接授权后再次点击按钮跳转到允许访问位置设置 总结 前言 ...
- 两圆圆心距离计算及位置关系判断(C++实现)
实验目的 学习友元函数的定义与调用,理解友元函数的意义. 实验原理 友元函数时在类中用关键字 friend修饰的函数,是类的非成员函数,但是它可以通过对象名访问类的私有和保护成员 利用圆心距与两圆半径 ...
- 怎么判断前轮左右的位置_左右车轮位置怎么判断?看方向盘就知道了,聪明的人都这么做...
在这篇文章开始之前,小编想让大家先回忆一下自己在驾照里面学车时的场景.学习过开车的人都应该知道,在开车的时候路面上有许多实线是汽车轮胎不能够压的.要是在进行驾照考试的时候你压了黄线的话,那么你就很倒霉 ...
- uniapp App端使用高德地图
uniapp App端使用高德地图 第一步: 先去高德官网申请keyhttps://console.amap.com/dev/key/app 关于SHA1生成方法如下:https://lbs.amap ...
- uniapp APP消息推送方案
提示:本文实例消息推送使用uniapp官方的unipush推送: 项目场景:该项目是uniapp + uniCloud 项目,APP端的消息推送使用 html+ 与原生实现交互 1.开通推送消息 – ...
- UNI-APP APP版本更新方法
UNI-APP APP版本更新方法 直接上代码不墨迹 直接上代码不墨迹 // 版本更新方法wgtUrlupload(){let _this = this;//系统版本升级判断接口(后台获取服务器)va ...
- uniapp APP 端 WebSocket 使用,实现一个简单 WebSocket 工具类
背景 最近有需求要做一个简单业务的 APP 应用,简单考虑选用 uniapp + uview + vue2.x 方案,因为还有web端页面也需要用到 WebSocket ,简单封装了一个适应 web ...
- uni-app做android应用开启定位权限
先说场景再贴代码,uni-app开发app应用,在用户没有开启定位时,通过uni.getLocation()无法获取用户位置信息,需要提示用户开启定位功能,具体实现如下: 第一步: 在manifest ...
- uni-app开发微信小程使用腾讯位置服务获取用户的位置信息
uni-app开发微信小程使用腾讯位置服务获取用户的位置信息 一.开通腾讯位置服务 二.编码实现 (一)获取定位坐标 (二).在项目中使用 一.开通腾讯位置服务 在这里我们先要登录腾讯我i之服务的官网 ...
最新文章
- JS中的null和undefined,undefined为啥用void 0代替?
- matlab shortest函数,MATLAB函數graphallshortestpaths不返回對稱矩陣
- 一张图看懂混合云数据同步一站式解决方案
- CDOJ1633 Video Game Combos [AC自动机+dp]
- 【原创】linux 批量清空文本内容
- android go 刷机教程,安卓用的久了,如何刷机?安卓手机线刷教程
- Spring boot CommandLineRunner接口使用例子
- 电子设计竞赛技术报告格式
- clousx6机器人卡密_手机x6机器人词库编程-clousx6词库助手免费版v8.0 安卓最新版-2265安卓网...
- 仿美团酒店预订的html模板,jQuery手机端仿美团酒店预订日期选择插件
- matlab求arma模型残差,求教关于ARMA模型的残差检验
- 认识计算机拓扑结构图,认识一下网络拓扑,几张图片几条线。
- 老牌下载站fixdown被挂马 威金蠕虫开始复苏
- 逆发动机模型map图制作
- excel查找并高亮展示重复值
- 一文揭秘字节跳动、华为、京东的薪资职级
- 高等数学:一元函数微分学
- Order by 1 的解释
- 腾讯、阿里、百度高工都点头称赞的“Redis 实战超全笔记”,不看你就亏大发了
- jQuery_02 快速入门 $作用和方法