良い一日
JQuery AJAX 呼び出しを介して外部サーバーから HTML ファイルを読み取り、FileWriter を使用してローカルの IOS 6.0 デバイスに保存しています。次に、ローカルに保存されたファイルを FileReader で読み取り、テキストを正常に取得しました。ここから達成したいことは、ローカルに保存されたファイル (FileReader を介して取得) から HTML コンテンツを取得し、それを電話のローカル Safari ブラウザーにプッシュして、HTML ページを表示することです (現在のターゲット市場は iPhone 5 です)。以下はいくつかのコードです。これを達成する方法はありますか?InAppBrowser プラグイン (Safari を使用したいので、実際には使用したくない) をインストールした後、window.open を試しました。また、onloadend イベントでテキストを返しました... document.write も理想的ではありません。ファイルを新しいウィンドウ/タブで開き、完了したらファイルを閉じてユーザーをアプリに戻すことができます。
私はPhoneGapを初めて使用するため、使用した方法がベストプラクティスを反映していない可能性があることに注意してください...
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady () {
var fileName = 'some_file.html';
readerObject.setFileName(fileName);
//Instantiate reader on the file
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
readerObject.gotFS, readerObject.fail);
}
// Create reader
var readerObject = {
// Sets the file name to read from
setFileName : function(fileName) {
readerObject.fileName = fileName;
},
// Gets the file name to read from
getFileName : function() {
return readerObject.fileName;
},
// Capture the file system
gotFS : function(fileSystem) {
fileSystem.root.getFile(readerObject.getFileName(), null,
readerObject.gotFileEntry, readerObject.fail);
},
gotFileEntry : function(fileEntry) {
fileEntry.file(readerObject.readData, readerObject.fail);
},
**readData : function(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
//Return text for streaming into the browser (NOT WORKING)
//return evt.target.result;
//Capture file path
var filePath = file.fullPath+"/"+file.name;
//Open file in new window (NOT WORKING)
//window.open(filePath, '_blank', 'location=yes');
window.open("file:///"+filePath, '_blank', 'location=yes');
};
reader.readAsText(file);
//reader.readAsBinaryString(file);
},**
fail : function(error) {
alert(error.code);
}
}