uniapp APP端 定位未授权 去手机设置里开启定位

这篇具有很好参考价值的文章主要介绍了uniapp APP端 定位未授权 去手机设置里开启定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、在页面使用
import { getLocation } from “@/utils/location.js”;
getLocation()获取地址
2、创建location文件

import {checkOpenGPSServiceByAndroid } from './openSettings.js'
export function getLocation() {
    return new Promise((resolve, reject) => {
        uni.getLocation({
            type: "wgs84 ",
            success(res) {},
            fail: function (err) {
                uni.showModal({
                    title: '提示',
                    content: '需要开启定位权限才能获取当前位置,请前往设置中心开启。',
                    confirmText: '去开启',
                    showCancel:false,
                    success: function(res) {
                      if (res.confirm) {
                        // 用户点击确认,跳转到设置页面
                        checkOpenGPSServiceByAndroid()
                      } else {
                      }
                    }
                  });
            },
            complete(com) { },
        });
    })
}

3、创建openSettings文件文章来源地址https://www.toymoban.com/news/detail-691710.html

let system = uni.getSystemInfoSync(); // 获取系统信息
/**检查是否打开GPS功能(android)**/
export const checkOpenGPSServiceByAndroid = () => {
  if (system.platform === 'android') { // 判断平台
      openGps()
  }else  if (system.platform == "ios") {
  //苹果打开对应的通知栏
  uni.showModal({
	  title: "定位权限开启提醒",
	   content: "未开启定位,请前往设置!",
	   confirmText: "去设置",
	   success: function(res) {
       if (res.confirm) {
          var app = plus.ios.invoke("UIApplication", "sharedApplication");
          var setting = plus.ios.invoke("NSURL", "URLWithString:", "app-settings:");
          plus.ios.invoke(app, "openURL:", setting);
           plus.ios.deleteObject(setting);
           plus.ios.deleteObject(app);
	    }
      }
  });
  }
 }
    /**
     * 定位权限及弹出权限弹框
     * **/
let num = 0;
export const openGps = () => {
 plus.android.requestPermissions(
     ['android.permission.ACCESS_FINE_LOCATION'],
     function(resultObj) {
       var result = 0;
       for (var i = 0; i < resultObj.granted.length; i++) {
           var grantedPermission = resultObj.granted[i];//'已获取的权限:
           result = 1
       }
       for (var i = 0; i < resultObj.deniedPresent.length; i++) {
         var deniedPresentPermission = resultObj.deniedPresent[i];//拒绝本次申请的权限
          num += 1
          result = 0
       }
       for (var i = 0; i < resultObj.deniedAlways.length; i++) {
          var deniedAlwaysPermission = resultObj.deniedAlways[i];//永久拒绝申请的权限
          num += 1
          result = -1
        }
         // 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
        if (result != 1) {
          setTimeout(() => {
           var Intent =plus.android.importClass("android.content.Intent")
           var Settings = plus.android.importClass("android.provider.Settings")
           var Uri = plus.android.importClass("android.net.Uri")
           var mainActivity = plus.android.runtimeMainActivity()
           var intent = new Intent()
           intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
           var uri = Uri.fromParts("package", mainActivity.getPackageName(), null)
           intent.setData(uri)
           mainActivity.startActivity(intent)
          }, 1200)
        }else {
           //因为安卓手机  手机授权之后还需要打开定位服务功能所有当手机授权之后 调用下面的方法
          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: '请打开定位服务功能',
           success(res) {
             if (res.confirm) {
               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) // 打开系统设置GPS服务页面
              } else {}
            }
         }
             });
             return
         }
     }
 },
     function(error) {
         resolve({
             code: error.code,
             message: error.message
         });
     }
 );
}

到了这里,关于uniapp APP端 定位未授权 去手机设置里开启定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 WebStorm 中开发 uni-app - 用vue2实现手机APP(apk) + 微信小程序项目开发方案 webstorm开发的uniapp + hbuilderx进行app 小程序打包

    我们主要分析了如下小程序开发框架,主要包括: 框架 技术栈 案例 微信小程序 支付宝小程序 百度小程序 头条小程序 H5 App uni-app Vue 丰富 ⭕ ⭕️ ⭕️ ⭕ ⭕️ ⭕ Taro React 丰富 ⭕ ⭕ ⭕ ⭕ ⭕ ⭕ wepy Vue 丰富 ⭕ ❌ ❌ ❌ ❌ ❌ mpvue Vue 丰富 ⭕ ❌ ❌ ❌ ⭕️ ❌  首先,就要排

    2023年04月15日
    浏览(45)
  • 在 WebStorm 中开发 uni-app - 用vue2实现手机APP(apk) + 微信小程序项目开发方案 webstorm开发的uniapp + hbuilderx进行app 小程序打包

    我们主要分析了如下小程序开发框架,主要包括: 框架 技术栈 案例 微信小程序 支付宝小程序 百度小程序 头条小程序 H5 App uni-app Vue 丰富 ⭕ ⭕️ ⭕️ ⭕ ⭕️ ⭕ Taro React 丰富 ⭕ ⭕ ⭕ ⭕ ⭕ ⭕ wepy Vue 丰富 ⭕ ❌ ❌ ❌ ❌ ❌ mpvue Vue 丰富 ⭕ ❌ ❌ ❌ ⭕️ ❌  首先,就要排

    2024年02月05日
    浏览(67)
  • WebStorm开发uni-app ,用vue2实现手机APP(apk) + 微信小程序多端项目开发方案 webstorm开发的uniapp + hbuilderx进行app 小程序打包

    我们主要分析了如下小程序开发框架,主要包括: 框架 技术栈 案例 微信小程序 支付宝小程序 百度小程序 头条小程序 H5 App uni-app Vue 丰富 ⭕ ⭕️ ⭕️ ⭕ ⭕️ ⭕ Taro React 丰富 ⭕ ⭕ ⭕ ⭕ ⭕ ⭕ wepy Vue 丰富 ⭕ ❌ ❌ ❌ ❌ ❌ mpvue Vue 丰富 ⭕ ❌ ❌ ❌ ⭕️ ❌  首先,就要排

    2024年02月11日
    浏览(46)
  • uni-app微信小程序uni.getLocation获取经度纬度【定位】

    需求:点击按钮获取当前微信位置,以及点击拒绝授权后,下次点击还可以拉起授权窗口; 拒绝授权后重新拉起授权操作: 直接授权操作: 原因:因为微信小程序从2019年1月14日起新提交发布的版本若未填写地理位置用途说明,则将无法正常调用地理位置相关接口; 解决办

    2024年04月09日
    浏览(36)
  • 『UniApp』uni-app-打包成App

    大家好,我是 BNTang, 在上一节文章中,我给大家详细的介绍了如何将我开发好的项目打包为微信小程序并且发布到微信小程序商店 趁热打铁,在来一篇文章,给大家详细的介绍如何将项目打包成APP。 打包 App 也是一样的,首先需要配置关于 App 应用的基础信息,打开 manifest

    2024年02月04日
    浏览(53)
  • 前端vue uni-app百度地图定位组件,显示地图定位,标记点,并显示详细地址

    快速实现前端百度地图定位组件,显示地图定位,标记点,并显示详细地址; 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下:     代码如下: # 百度地图定位组件,显示地图定位,标记点,并显示详细地址 #### 使用方法 ```使用方法 #安装vue-baidu-map插件

    2024年02月08日
    浏览(46)
  • 【UniApp】-uni-app-网络请求

    经过上个章节的介绍,大家可以了解到 uni-app-pinia存储数据的基本使用方法 那本章节来给大家介绍一下 uni-app-网络请求 的基本使用方法 首先我们打开官方文档,我先带着大家看一下官方文档的介绍:https://uniapp.dcloud.net.cn/api/request/request.html 从官方文档中我们可以看到,可以

    2024年02月04日
    浏览(33)
  • uniapp- 使用 uni-getLocation 用户拒绝之后引导用户开启定位流程

    注意: 1.用户手动授权定位, uni-getLocation  可以使用, 其他定位,请查阅,是否需要用户手动授权 2.用户在第一次使用需要获取定位的地方,拒绝之后才会拉起下面的这些数据的请求 3. 开发者测试 每次使用都需要清除缓存 4.小程序使用时候,没有触发 uni-getLocation  函数

    2024年02月12日
    浏览(29)
  • 【UniApp】-uni-app-打包成网页

    经过上一篇文章的介绍,已经将这个计算器的计算功能实现了,接下来就是我们项目当中的一个发包上线阶段,我模拟一下,目的就是为了给大家介绍一下,uni-app是如何打包成网页的。 除了可以打包成网页,uni-app还可以打包成小程序、App、H5、快应用等等,后面在单独开文

    2024年02月04日
    浏览(52)
  • uni-app通过uni.getSystemInfoSync()获得的手机信息

    突发奇想,记录一下,hbuilder的真机测试可以获取到哪些手机信息。 console.log(uni.getSystemInfoSync()) 打印之后的信息为: 假设,我设计一个页面,设计图如下所示:已知button部分的高度为100rpx,空白求空白部分的高度。 设:空白部分高度为heightW,空白部分的高度为: uni.height

    2024年02月20日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包