RongCloud
RongCloud
  • 发布:2025-04-08 15:58
  • 更新:2025-04-09 15:36
  • 阅读:124

【报Bug】华为手机调用 requestAndroidPermission 后,成功和失败回调都没触发。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.1

HBuilderX类型: 正式

HBuilderX版本号: 4.57

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: p30

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

uni.chooseImage({
count: 1
sourceType: ['album'],
success: (res) => {
console.log(res);
},
fail: (err) => {
console.log(err);
},
});

预期结果:

可以弹出授权提示,授权后可打开相册选取器

实际结果:

无法弹出授权提示,无法打开相册选取器

bug描述:

使用 HBuilderX 内置基座和云打包基座,在华为手机上调用 requestAndroidPermission 后没有任何返回,没办法判断 app 的权限设置。
判断权限是为了解决 chooseImage 调用后无响应,也没弹出授权的提示。

内置基座 app 在调用 chooseImage 后没有任何响应。
云打包的 app 在调用 chooseImage 第一次没响应,第二次调用时会报 setTimeout is not function 的错误。

如果手动在应用设置中开启存储权限,就可以正常调用 chooseImage 了。

以下是调用 uni.getSystemInfo 返回的设备信息:

{
"SDKVersion": "",
"appId": "xxxxx",
"appLanguage": "zh-Hans",
"appName": "xxxxx",
"appVersion": "14.57",
"appVersionCode": 1457,
"appWgtVersion": "1.0.0",
"brand": "huawei",
"browserName": "chrome",
"browserVersion": "114.0.5735.196",
"deviceBrand": "huawei",
"deviceId": "xxxxxxxxx",
"deviceModel": "ELE-AL00",
"deviceOrientation": "portrait",
"devicePixelRatio": 3,
"deviceType": "phone",
"isUniAppX": false,
"language": "zh-CN",
"model": "ELE-AL00",
"oaid": "xxxxxxxxx",
"osAndroidAPILevel": 29,
"osLanguage": "zh-CN",
"osName": "android",
"osTheme": "light",
"osVersion": "10",
"pixelRatio": 3,
"platform": "android",
"romName": "HarmonyOS",
"romVersion": "4.0.0",
"safeArea": {
"left": 0,
"right": 360,
"top": 34,
"bottom": 738,
"width": 360,
"height": 704
},
"safeAreaInsets": {
"top": 34,
"right": 0,
"bottom": 0,
"left": 0
},
"screenHeight": 738,
"screenWidth": 360,
"statusBarHeight": 34,
"system": "Android 10",
"ua": "Mozilla/5.0 (Linux; Android 10; ELE-AL00 Build/HUAWEIELE-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.196 Mobile Safari/537.36 uni-app (Immersed/34.0)",
"uniCompileVersion": "4.57",
"uniCompilerVersion": "4.57",
"uniPlatform": "app",
"uniRuntimeVersion": "4.57",
"version": "1.9.9.82388",
"windowBottom": 0,
"windowHeight": 738,
"windowTop": 0,
"windowWidth": 360,
"errMsg": "getSystemInfo:ok"
}

2025-04-08 15:58 负责人:DCloud_Android_zl 分享
已邀请:
蔡cai

蔡cai - 开发的插件:https://ext.dcloud.net.cn/publisher?id=394134

直接调用uni.chooseImage不是可以唤起权限?

  • RongCloud (作者)

    就是因为直接调用 uni.chooseImage 无法唤起,我才加的判断权限,然后发现请求权限也有问题

    2025-04-08 17:41

  • 蔡cai

    回复 RongCloud: hbuilderx降版本应该可以用吧,可以的话就是更新出问题了

    2025-04-09 09:06

DCloud_Android_zl

DCloud_Android_zl

发一下代码

RongCloud

RongCloud (作者)

代码在操作步骤中已发,就是简单的调用 chooseImage 接口,您简单写一个调用然后云打包后在华为手机上试一下。

yuewanxinghui

yuewanxinghui

plus.android.requestPermissions请求权限

  • RongCloud (作者)

    调用之后成功和失败回调都没响应,不知道为啥,我暂时用离线打包解决了。

    2025-04-09 16:03

要回复问题请先登录注册