簡體   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