繁体   English   中英

cordova.file在离子项目中未定义为android

[英]cordova.file is undefined in ionic project for android

我正在尝试为android构建一个ionic app 我需要从sdcard读取一个文件,我正在使用ngcordova plugin 我已经要求ngCordova角模块在app.js我注射ngcordova的前cordova.js在我index.html 使用安装它

cordova插件添加cordova-plugin-file

我在我的控制器中注入了$cordovaFile

每当我尝试使用下面的代码读取文件时,我都会收到错误, cannot read property externalDataDirectory of undefined

      $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 plugin rm cordova-plugin-file cordova plugin add 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" />

更多信息插件网站

更新 - 尝试以下

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM