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下,需要特别注意以下几点:
- Android 13引入了新的运行时权限:READ_MEDIA_IMAGES,需要确保在manifest.json中正确配置:
"permission": {
"android.permission.READ_MEDIA_IMAGES": {
"request": "once",
"prompt": "需要访问您的相册以选择图片"
}
}
-
检查webview与原生通信是否正常,确保H5页面正确调用了uni API。可以在H5页面中加入console.log调试,查看uni对象是否存在。
-
尝试在H5页面中使用以下方式调用:
uni.chooseImage({
count: 1,
success: (res) => {
console.log(res.tempFilePaths);
},
fail: (err) => {
console.error(err);
}
});
- 如果问题依旧,可以尝试在AndroidManifest.xml中添加以下配置:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>