gpt4 book ai didi

javascript - cordova.file 在 android 的 ionic 项目中未定义

转载 作者:行者123 更新时间:2023-11-29 17:17:00 25 4
gpt4 key购买 nike

我正在尝试为 android 构建一个 ionic 应用程序。我需要从我正在使用 ngcordova 插件 的 sdcard 中读取一个文件。我在 app.js 的 Angular 模块中需要 ngCordova我在 index.html 中的 cordova.js 之前注入(inject)了 ngcordova。使用

安装它

cordova plugin add cordova-plugin-file

我已经在我的 Controller 中注入(inject)了 $cordovaFile

每当我尝试使用以下代码读取文件时,我都会收到错误消息,无法读取未定义的属性 externalDataDirectory

      $ionicPlatform.ready(function() {
console.log('cordova.file.externalDataDirectory: ' + cordova.file.externalDataDirectory);
myFsRootDirectory1 = 'file:///storage/emulated/0/'; // path for tablet
myFsRootDirectory2 = 'file:///storage/sdcard0/'; // path for phone
fileTransferDir = cordova.file.externalDataDirectory;
if (fileTransferDir.indexOf(myFsRootDirectory1) === 0) {
fileDir = fileTransferDir.replace(myFsRootDirectory1, '');
}
if (fileTransferDir.indexOf(myFsRootDirectory2) === 0) {
fileDir = fileTransferDir.replace(myFsRootDirectory2, '');
}
console.log('Android FILETRANSFERDIR: ' + fileTransferDir);
console.log('Android FILEDIR: ' + fileDir);

$cordovaFile.readAsText(fileDir + 'a.csv').then(function(result) {
console.log('readAsText: ', result);
alert(result)
})
.catch(function(err) {
alert(err)
});
})

我也试过打印cordova,但它不包含文件对象

     $ionicPlatform.ready(function() {
alert(angular.toJson(window.cordova))
})

我也做过 build cordova android删除并添加了 cordova 插件 rm cordova-plugin-filecordova 插件添加 cordova-plugin-file

以下是版本:

"ionic": "driftyco/ionic-bower#1.3.1",
"ngCordova": "^0.1.27-alpha"

我在设备上测试这个并且每次都构建一个新的 apk 进行测试,而不是在 webview 中。

请帮我解决这个问题,或者如果你能推荐我一个不同的方法来解决这个问题,那就太好了!

感谢您的回答

最佳答案

使用任何额外的插件配置更新了 config.xml 文件,也许这可以解决您面临的问题。查看插件文档以获取更多信息。

<preference name="AndroidPersistentFileLocation" value="Compatibility" />             
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />

更多信息 Plugin website

更新 - 尝试关注

npm update -g
cordova -v
cordova platform list
cordova platform update ios (or whatever platforms)
cordova platform list
cordova plugin list
-- now either do a cordova plugin remove/add for each plugin to update
-- OR with ionic use ionic state reset and it will install all from package.json

关于javascript - cordova.file 在 android 的 ionic 项目中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38449900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com