2012-06-12 4 views
5

PhoneGap 버전 1.8 (cordova-1.8.0.js)으로 작업 중이며 Android 용 앱을 만들려고합니다. Eclipse를 통해 실제 장치에서 디버깅 중입니다.PhoneGap - Android 용 파일에 쓸 수 없습니다.

파일에 텍스트를 쓰려고합니다. 나는 이미 내 현재의 셋업 그래서 그것을 잘 작동 알고 함께 응용 프로그램을 만들 수있게되었습니다

http://docs.phonegap.com/en/1.8.0/cordova_file_file.md.html#FileWriter

에서 폰갭에서 제공하는 예제 API 코드를 사용하고, 나는 파일에 쓸 수 단지 드릴 수 없습니다 . 나는이 문제에 시간을 보냈습니다하지만, 다음과 같은 오류 메시지가 계속 :

E/Web Console(27356): Uncaught ReferenceError: LocalFileSystem is not defined at file:///android_asset/www/debug.js:28 

라인 (28)

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 

인 내가 API 웹 사이트에서 정확한 코드를 사용하고 있습니다.

내가 잘못하고있는 것에 대한 제안 사항이 있으십니까?

아마도 PhoneGap 설정에서 적절한 Java 라이브러리를 가져 오지 못하고 있습니까?

나는 가져올 다음과 같습니다

import android.os.Bundle; 
import org.apache.cordova.*; 
import android.view.WindowManager; 
import android.view.KeyEvent; 

감사합니다.

편집 : 나는 대신에 불이 결코 이름으로

document.addEventListener("deviceready", onDeviceReady, false); 

$(document).ready(function() { 

을 사용했다

. 여기 내 정확한 코드는 또한 내 폰갭 프로젝트 내에서

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

활동을 할 수있다.

전체 코드 :

<!DOCTYPE html> 
<html> 
<head> 
<title>FileWriter Example</title> 

<script type="text/javascript" charset="utf-8" src="cordova-1.8.0.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// Wait for Cordova to load 
// 
document.addEventListener("deviceready", onDeviceReady, false); 

// Cordova is ready 
// 
function onDeviceReady() { 

    alert("device ready"); // this never gets called 

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 

function gotFS(fileSystem) { 
    fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail); 
} 

function gotFileEntry(fileEntry) { 
    fileEntry.createWriter(gotFileWriter, fail); 
} 

function gotFileWriter(writer) { 
    writer.onwriteend = function(evt) { 
     console.log("contents of file now 'some sample text'"); 
     writer.truncate(11); 
     writer.onwriteend = function(evt) { 
      console.log("contents of file now 'some sample'"); 
      writer.seek(4); 
      writer.write(" different text"); 
      writer.onwriteend = function(evt){ 
       console.log("contents of file now 'some different text'"); 
      } 
     }; 
    }; 
    writer.write("some sample text"); 
} 

function fail(error) { 
    console.log(error.code); 
} 

</script> 
</head> 
<body> 
<h1>Example</h1> 
<p>Write File</p> 
</body> 
</html> 

나는 또한 장치 준비 통화 알림 기능에 던져, 그것은 전혀 호출되지 없구요.

이 코드가 작동하지 않는다고 생각하십니까?

내가 같은 오류 메시지가 계속 같은 파일 writter를 호출하려고에 대한 제 생각 엔 좋지 않아 내가 코드가 시작 업에 화재로 얻을 수있는 유일한 방법

$(document).ready(function() { 

}); 

을 사용하고 있습니다.

답변

1

deviceready이 실행되지 않는 경우 파일을 쓰는 것이 문제가 아닙니다. 이는 휴대 전화 앱이 어떻게 설정되어 있는지와 관련이 있습니다.

당신은 당신의 주요 활동에 다음과 가져와야합니다 :

import android.app.Activity; // used to fire deviceready 
import android.os.Bundle; 
import org.apache.cordova.*; 
+0

내 게시물을 업데이트했습니다.만약 deviceready 함수를 사용한다면, 나는 그것을 발사 할조차 수 없습니다. 이 기능과 안드로이드 용 phonegap에 대한 알려진 문제점이 있습니까? 나는이 문제에 어떤 시간도 보냈다. 어떤 도움이라도 대단히 감사 할 것입니다. 고맙습니다. – user1017063

+0

@ user1017063 제 편집을 확인하십시오. – AustinAllover

+1

@AustinAllover 나는 iOS에서 직면하고있는 것과 같은 문제입니다. 어떻게 해결할 수 있습니까? 도와주세요. –

관련 문제