2016-07-19 31 views
0

androidionic appをビルドしようとしています。私はngcordova pluginを使用しているsdcardからファイルを読み込む必要があります。 角度モジュールにngCordovaが必要ですapp.js cordova.jsの前にngcordovaを注入しています。index.htmlです。 は、私は私のコントローラで$cordovaFileを注入しているcordova.fileはandroidのイオンプロジェクトでは定義されていません

コルドバ・プラグイン・ファイルを追加

コルドバのプラグインを使用してそれをインストール。

私は以下のコードを使用してファイルを読み取ろうとするたびに、私はエラーを取得し、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) 
       }); 
     }) 

私もコルドバを印刷しようとしましたが、それはファイルオブジェクトに

が含まれていません
 $ionicPlatform.ready(function() { 
     alert(angular.toJson(window.cordova)) 
    }) 

私も削除build cordova android を行い、cordova plugin rm cordova-plugin-file cordova plugin add cordova-plugin-file

0を追加しましたここ

はバージョンです:

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

私はないwebviewに、テストのため毎回、デバイス上でこれをテストし、新しいAPKを構築しています。

私はこの問題を解決するのに役立ちますか、この問題を回避する別の方法を私に勧めていただけたら、それは素晴らしいことでしょう!余分なプラグインの設定でconfig.xmlファイルを更新答え

+0

がngCordovaファイルがロードされて確認している次みては?そうでない場合は、chrome:// ngcordovaファイルのリソースを調べて確認してください。 –

+0

@BhaveshJariwala:応答をいただきありがとうございます.ngcodova.jsがChromeに読み込まれています。あなたがお勧めできるものは他にありますか? –

答えて

2

ため

おかげで、多分これはあなたが直面している問題を解決します。詳細については、プラグインのマニュアルを参照してください。

<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 
+0

応答をありがとう、私はこれを追加しましたが、まだ問題を解決しません。同じ内容のコードボアにも同じ警告が出ます。他にもお勧めできるものはありますか? –

+0

私は上記の答えを更新しました。可能であれば、ダウンロードリンクからコードを公開することができますか? –

+0

ありがとうございます。@ daan.desmedt これは、問題の解決に役立ちました。 私は開発したマシンとは別のマシンにアプリケーションをビルドします。私はそれらを同期するためにgitを使います。 プラグインは.gitignoreにありますので、アクセスできませんでした。 「イオン状態リセット」はこの問題を解決するのに役立ちました。 –

関連する問題