targetSdkVersion设置为33,打包自定义基座,本地调试webview组件打开h5,h5里面uni.chooseImage点击无反应

targetSdkVersion设置为33,打包自定义基座,本地调试webview组件打开h5,h5里面uni.chooseImage点击无反应

开发环境 版本号 项目创建方式
Windows Windows 11 HBuilderX
Android Android 13
OPPO
realme gt5

操作步骤:

  • webview组件打开h5,h5里面uni.chooseImage点击无反应

预期结果:

  • 点击唤起相册

实际结果:

  • 点击无反应

bug描述:

  • targetSdkVersion设置为33,打包自定义基座,本地调试webview组件打开h5,h5里面uni.chooseImage点击无反应

1 回复

这个问题的原因可能是由于Android 13的权限变更导致的。在targetSdkVersion 33下,需要特别注意以下几点:

  1. Android 13引入了新的运行时权限:READ_MEDIA_IMAGES,需要确保在manifest.json中正确配置:
"permission": {
    "android.permission.READ_MEDIA_IMAGES": {
        "request": "once",
        "prompt": "需要访问您的相册以选择图片"
    }
}
  1. 检查webview与原生通信是否正常,确保H5页面正确调用了uni API。可以在H5页面中加入console.log调试,查看uni对象是否存在。

  2. 尝试在H5页面中使用以下方式调用:

uni.chooseImage({
    count: 1,
    success: (res) => {
        console.log(res.tempFilePaths);
    },
    fail: (err) => {
        console.error(err);
    }
});
  1. 如果问题依旧,可以尝试在AndroidManifest.xml中添加以下配置:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
回到顶部