2016-07-19 7 views
0

androidionic app을 만들려고합니다. ngcordova plugin을 사용중인 sdcard에서 파일을 읽어야합니다. 각도 모듈에 ngCordova이 필요합니다. app.js cordova.js 앞에 ngcordova을 삽입하고 있습니다. index.html입니다. 는cordova.file은 안드로이드 용 ionic 프로젝트에서 정의되지 않았습니다

코르도바 플러그인 코르도바 - 플러그인 파일 내 컨트롤러 $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) 
       }); 
     }) 

내가뿐만 아니라 코르도바를 인쇄하려고 노력 얻을 수 있지만, 파일 객체를 포함하지 않는

 $ionicPlatform.ready(function() { 
     alert(angular.toJson(window.cordova)) 
    }) 
나는 또한 build cordova android 제거 완료하고 cordova plugin rm cordova-plugin-file cordova plugin add cordova-plugin-file

0을 추가 한

내가 장치에이를 테스트하고 webview하지, 테스트를 위해 새로운 APK 각 시간을 짓고 있어요

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

:

다음은 버전입니다.

이 문제를 해결하는 데 도움이 필요하거나이 문제를 해결하기 위해 다른 방법을 추천 해 주시면 큰 도움이됩니다. 여분의 플러그인 구성 config.xml 파일 업데이트에 대한 답변

+0

다음 시도? 그렇지 않다면 chrome : // ngcordova 파일에 대한 검사 및 리소스 확인 –

+0

@BhaveshJariwala : 응답 해 주셔서 감사합니다. ngcodova.js가 Chrome에로드되는 것을 볼 수 있습니다. 추천할만한 것이 있습니까? –

답변

2

에 대한

덕분에, 어쩌면 이것은 당신이 직면하고있는 문제를 해결합니다. 자세한 정보는 플러그인 문서를 확인하십시오.

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

더 많은 정보 Plugin website

업데이트 -로드 ngCordova 파일을 검사 한

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에 있으므로 액세스 할 수 없었습니다. '이온 상태 재설정 '으로이 문제를 해결할 수있었습니다. –

관련 문제