我在我的Ionic 4应用程序中使用cordova-plugin-mfilechose。它在Android版本9之前运行良好,但在Android 10中,每当我们触发插件时,它只会打开一个窗口,显示内部存储,但没有列出文件,尽管手机中有很多文件。我使用了与官方文档相同的代码,添加到下面。提前谢谢。
window.plugins.mfilechooser.open(['.doc', '.xls', '.ppt'], function (uri) {
alert(uri);
}, function (error) {
alert(error);
});发布于 2019-11-19 21:04:28
这个插件看起来像是在使用标准的Java文件操作和路径来选择文件,在Android 10和更高版本中,除了你的应用程序的私有目录之外,你不能再使用文件路径或Java文件操作了。
请参阅https://developer.android.com/training/data-storage/files/external-scoped
我也不确定为什么要使用这样的插件,因为安卓系统本身就提供了存储访问FrameWork( MediaStore )的功能
有关操作方法,请参阅https://developer.android.com/guide/topics/providers/document-provider#client。
现在所有的东西都只能使用Java FileDescriptor了。
发布于 2019-11-20 21:54:46
我找到了解决我的问题的方法。尽管从长远来看,这不是一个解决方案。在我的Ionic 4项目中,/config.xml android-targetSdkVersion是29。我改成了28。它可以在安卓10和所有较低版本上运行。下面是代码。
<preference name="android-targetSdkVersion" value="28" />发布于 2020-04-05 11:52:56
我认为所有离子插件,如cordova-plugin-camera和cordova-plugin-telerik-imagepicker都需要更新,以便完全兼容android 10的作用域存储。
https://stackoverflow.com/questions/58932504
复制相似问题