1

再会

我正在通过 JQuery AJAX 调用从外部服务器读取 HTML 文件,并使用 FileWriter 将它们存储在本地 IOS 6.0 设备上。然后我使用 FileReader 读取本地存储的文件,并成功获取文本。我想从这里实现的是,从本地存储的文件(通过 FileReader 检索)中获取 HTML 内容,并将其推送到手机上的本地 Safari 浏览器中以显示 HTML 页面(当前目标市场是 iPhone 5)。下面是一些代码。任何想法如何实现这一目标?我在安装 InAppBrowser 插件(我不想使用它,因为我想使用 Safari)并在 onloadend 事件中返回文本后尝试了 window.open... 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);
   }

}

4

0 回答 0