0

我正在尝试迁移我的移动应用程序(使用 Cordova 和 AngularJS 为 Android 和 iOS 平台开发),我遇到了从 API 29 到 API 30 的一些问题。在我的应用程序中,我从 REST 服务下载了一个带有分隔图片的 JSON 目录(JPG格式)存储在数据目录(cordova.file.dataDirectory)中。使用 API 设置为 29 的应用程序构建,应用程序运行良好,下载图片并在 HTML 页面中显示它们(使用 AngularJS 更新)。但是,如果我尝试将 API 设置为 30 来构建它,应用程序会继续工作(它会正确下载数据目录中的 json 和 jpg 文件),但不会显示存储在该目录中的图片。我还尝试使用所有更新的组件(Cordova 10.0.0、Android 平台 10.0.0、插件等)创建一个新的简单移动应用程序,但我获得了相同的行为,我无法解决这个问题。

使用 API 29 构建信息应用程序

Cordova v8.1.2
安卓平台 v8.0.0

使用 API 30 构建信息应用程序

Cordova v10.0.0
安卓平台 v10.0.0

插件列表

cordova-plugin-android-permissions 1.0.2“权限”
cordova-plugin-camera 4.1.0“相机”
cordova-plugin-compat 1.2.0“Compat”
cordova-plugin-datepicker 0.9.3“DatePicker”
cordova-plugin-设备 2.0.3 “设备”
cordova-plugin-dialogs 2.0.2 “通知”
cordova-plugin-file 6.0.2 “文件”
cordova-plugin-file-hash 0.4.1 “FileHash”
cordova-plugin-filepath 1.5.8 “cordova-plugin-filepath”
cordova-plugin-geolocation 4.0.2 “地理位置”
cordova-plugin-globalization 1.11.0 “全球化”
cordova-plugin-inappbrowser 3.2.0 “InAppBrowser”
cordova-plugin-network-information 2.0.2 "网络信息”
cordova-plugin-sign-in-with-apple 0.1.2 “cordova-plugin-sign-in-with-apple”
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "白名单"
cordova-plugin-wkwebview-engine 1.2.1 "Cordova WKWebView Engine"
cordova- plugin-wkwebview-file-xhr 2.1.4 “Cordova WKWebView 文件 XHR 插件”
cordova-sqlite-storage 5.0.0 “Cordova s​​qlite 存储插件 - cordova-sqlite-storage 插件版本”
ionic-plugin-keyboard 2.2.1 “键盘”
phonegap-plugin-mobile-accessibility 1.0.5-dev “移动辅助功能”

4

2 回答 2

1

尝试添加到您的配置

 <preference name="AndroidInsecureFileModeEnabled" value="true" />
于 2021-10-07T14:14:17.903 回答
0

Eric 建议的设置可能对您有用,但不推荐。新的 cordova-android 版本使用名为 WebViewAssetLoader 的 API 来在适当的 http(s) 方案而不是 file: 上加载您的应用程序。我怀疑您在下载数据时遇到了 CORS 问题。

阅读有关 Cordova 中 WebViewAssetLoader 的更多信息:https ://cordova.apache.org/announcements/2021/07/20/cordova-android-10.0.0.html

更好的方法是找出正确的 CORS 并且不使用不安全的设置。您应该找到大量有关 CORS 的资源。如果您需要帮助,请回复。

于 2021-10-08T10:21:17.393 回答