伊卡洛斯
伊卡洛斯
  • 发布:2019-06-17 19:40
  • 更新:2021-10-22 17:27
  • 阅读:3973

app第一次启动调用uni.getLocation接口没有用

分类:uni-app

详细问题描述

在app启动页onShow()函数中调用了获取当前的地理位置接口 uni.getLocation(OBJECT) 。
第一次启动不会弹出提示窗。失败回调和结束回调以不会执行,
把app关闭第二次启动,才会弹出授权提示窗。

[期望]
第一次启动app时会弹出位置授权提示窗。

IDE运行环境说明

HBuilderX 2.0.1.20190614

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
真机测试

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX创建

[编译模式是老模板模式还是新的自定义组件模式?]
自定义编译模式

App运行环境说明

[Android版本号]
Android 9

[手机型号]
小米9

2019-06-17 19:40 负责人:DCloud_Android_zl 分享
已邀请:
DCloud_Android_zl

DCloud_Android_zl

问题已修复,将会在下版更新。

DCloud_Android_zl

DCloud_Android_zl

bug已修复,需升级到HBuilderX 2.0.3+

  • 5***@qq.com

    你好,我现在hbuilderx已经更新到2.1.3的版本,但是getLocation第一次安装的时候还是没有弹出获取定位权限。


    2019-08-06 11:04

  • DCloud_Android_zl

    回复 5***@qq.com: 应该会触发失败回调。


    2019-08-07 11:38

  • 2***@qq.com

    2.1.1版本同样存在此问题


    2019-08-07 11:52

  • 2***@qq.com

    第一次的时候未触发失败回调


    2019-08-07 11:53

  • DCloud_Android_zl

    回复 2***@qq.com: 我这边测试正常,最新版不弹出定位权限的情况下会触发失败回调。


    2019-08-07 12:31

  • 5***@qq.com

    回复 DCloud_Android_zl: 这个是因为权限原因,是知道了,多谢老哥

    。不过我这边第一次打开app,不弹出通话和其他权限。第二次打开才会弹出。plus.android.requestPermissions(["android.permission.READ_PHONE_STATE"],用了这个,结果第一次打开的结果是永久拒绝,第二次才是正常的弹出权限,用的是新版本编辑器,用之前的20190614的版本,第一次打开就会弹出通话权限,但是不支持plus.device.getInfo


    2019-08-12 13:42

伊卡洛斯

伊卡洛斯 (作者)

调用 uni.getLocation 接口没有用或触发失败回调,是因为在弹出其它授权提示窗的情况下调用 uni.getLocation 就会造成接口没有用或触发失败回调。
例如:第一次启动APP都会弹出授权访问手机上的照片、媒体内容和文件,这个授权提示窗。在这个授权提示窗弹出的时候,调用 uni.getLocation 接口就会没有用或触发失败回调,我的解决办法是不在启动页调用 uni.getLocation 接口。

  • k6_aa123

    第一次启动APP都会弹出授权访问手机上的照片、媒体内容和文件,这个授权提示窗。在这个授权提示窗弹出的时候,调用 uni.getLocation 接口就会没有用或触发失败回调。问一下, 你的解决办法是什么, 在哪里使用,可以唤醒它uni.getLocation


    2021-11-11 10:21

祥子888

祥子888

苹果手机打开内置地图后 点击上面返回键返回不了

p***@126.com

p***@126.com

这个问题,我在华为手机畅享Z上也出现了,红米是正常的,麻烦处理一下

HBuilder X 的版本是: 2.9.7.20201105

ewpower

ewpower

"<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>",
"<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>",
"<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>",

加上这几行可以弹出了,在manifest.json文件中加

该问题目前已经被锁定, 无法添加新回复