5

私は PhoneGap バージョン 1.8 (cordova-1.8.0.js) を使用しており、Android 用のアプリを作成しようとしています。Eclipseを介して実機でデバッグしています。

テキストをファイルに書き込もうとしています。PhoneGap から提供されているサンプル API コードを使用しています。

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

現在のセットアップでアプリを作成できたので、うまく機能することはわかっていますが、ファイルに書き込むことができません。この問題に何時間も費やしましたが、次のエラー メッセージが表示され続けます。

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 Web サイトの正確なコードを使用しています。

私が間違っている可能性があることについて何か提案はありますか?

PhoneGap セットアップで適切な Java ライブラリをインポートしていない可能性がありますか?

私は以下をインポートしました:

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

ありがとうございました。

編集:

使っていました

$(document).ready(function () {

の代わりに

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

決して発火しないので。これが私の正確なコードです。また、

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

私の phonegap プロジェクト内でアクティブです。

完全なコード:

<!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>

また、デバイスの準備完了呼び出しにアラート関数を投入しましたが、まったく呼び出されません。

このコードがどのように機能しないかについて何か考えはありますか?

起動時にコードを起動できる唯一の方法は、

$(document).ready(function () { 

});

同じエラーメッセージが表示され続けるため、ファイルライターを呼び出そうとすると、これは良くありません。

4

1 に答える 1

1

問題は、起動しない場合のファイルの書き込みではdevicereadyなく、phonegap アプリのセットアップ方法にあります。

主なアクティビティで以下をインポートする必要があります。

import android.app.Activity; // used to fire deviceready 
import android.os.Bundle;
import org.apache.cordova.*;
于 2012-06-12T02:02:13.043 に答える