陌翊痕
陌翊痕
  • 发布:2025-07-02 15:01
  • 更新:2025-07-02 19:23
  • 阅读:100

鸿蒙NEXT 怎么判断系统定位开关是否打开/时候授予权限.

分类:鸿蒙Next

uni.getLocation(OBJECT),在鸿蒙next平台在已经打开系统定位的情况,第一次调用会正常弹出系统授权弹窗,授权之后正常获取经纬度.但是有几个问题
a.默认没有打开系统定位,就会定位失败,这时候怎么判断系统定位开关没有打开,并且引导用户打开呢.
b. 系统定位打开成功之后,用户拒绝权限,再次uni.getLocation是不会调起系统弹窗的,怎么判断是用户拒绝,并引导用户手打授予权限.

2025-07-02 15:01 负责人:无 分享
已邀请:
DCloud_UNI_yuhe
  • 陌翊痕 (作者)

    这个api测试过,定位开关或者定位权限没授予 都会返回false.没办法区分是系统定位开关未打开还是用户拒绝了权限. const authorized = uni.getAppAuthorizeSetting()

    if (authorized.locationAuthorized === 'authorized') {

    console.log('------------------')

    uni.getLocation({

    type: 'wgs84',

    success: function(res) {

    console.log('当前位置的经度:' + res.longitude);

    console.log('当前位置的纬度:' + res.latitude);

    },

    fail: (err) => {

    console.log(err)

    }


                });  
    }

    2025-07-03 09:43

  • DCloud_UNI_yuhe

    回复 陌翊痕: 是哪个版本?是最新版的吗?

    2025-07-03 10:44

  • 陌翊痕 (作者)

    回复 DCloud_UNI_yuhe: 关于本机HarmonyOS版本软件版本 5.0.15.0.1.120

    运行内存 12GB存储

    可用空间:220.02GB

    总容量:256GB

    屏幕 2412×1084

    基带版本 21C30SPC303S000C00021C30SPC303S000C000HongMeng Kernel 1.9.5

    内核版本HarmonyOS@ localhost #1 SMP FriMay 904:05:09 UTC 2025

    API版本 5.0.5(17)OpenHarmony版本 OpenHarmony 5.0.1

    参数版本安全补丁标签 2025/05/01

    2025-07-03 11:19

  • DCloud_UNI_yuhe

    回复 DCloud_UNI_yuhe: 是hbuilderx的版本,是最新的吗?另外你打印一下执行的结果看看是什么?

    2025-07-03 14:55

  • 陌翊痕 (作者)

    回复 DCloud_UNI_yuhe: HBuilderX 4.66


    const authorized = uni.getAppAuthorizeSetting()

    console.log('locationAuthorized:',authorized.locationAuthorized) //打印显示locationAuthorized: denied .


    //denied:未打开系统定位/已打开系统定位,首次uni.getAppAuthorizeSetting()/已打开系统定位,用户拒绝权限.

    2025-07-03 16:57

  • DCloud_UNI_yuhe

    回复 陌翊痕: 好的,等我看一下这个问题的

    2025-07-03 17:01

要回复问题请先登录注册