1

私は、ファイル IO を必要とするワークライト アプリケーションに取り組んでいます。私はそのコードをアンドロイドプロジェクトで別々に書いています。両方を1つに結合する方法を誰か教えてもらえますか?

4

2 に答える 2

5

Idan が言ったように、既存のネイティブ アプリケーションを Worklight ハイブリッド アプリケーションに移植する方法はありません。ただし、Android や iOS などのさまざまな環境の Worklight ハイブリッド アプリケーションですぐに使用できるFile APIを利用できます。Cordova プラグインを作成する場合は、サポートするすべての環境用のプラグインを作成する必要があります。

ファイルを書き込むためのファイル I/O API の簡単な例を次に示します。

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

// Cordova is ready
//
function onDeviceReady() {
    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);
}

ファイルの読み取りの例を次に示します。

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

// Cordova is ready
//
function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
    fileEntry.file(gotFile, fail);
}

function gotFile(file){
    readDataUrl(file);
    readAsText(file);
}

function readDataUrl(file) {
    var reader = new FileReader();
    reader.onloadend = function(evt) {
        console.log("Read as data URL");
        console.log(evt.target.result);
    };
    reader.readAsDataURL(file);
}

function readAsText(file) {
    var reader = new FileReader();
    reader.onloadend = function(evt) {
        console.log("Read as text");
        console.log(evt.target.result);
    };
    reader.readAsText(file);
}

function fail(evt) {
    console.log(evt.target.error.code);
}
于 2013-03-21T22:13:31.883 に答える
2

既存のWorklightHybridアプリケーションを既存のネイティブアプリケーションと組み合わせる方法はありません。Worklightアプリケーションの正しいアプローチは、Cordovaプラグインを作成して、ネイティブ側で必要なことを実行することです。

その方法を説明するこれらのトレーニング・モジュールを参照してください:http ://www.ibm.com/developerworks/mobile/worklight/getting-started.html#cordova

于 2013-03-21T13:01:23.520 に答える