PhoneGap 3.0.0-将本地存储的HTML文件读入本地Safari浏览器,以便在IOS上显示

PhoneGap 3.0.0-将本地存储的HTML文件读入本地Safari浏览器,以便在IOS上显示,html,ios6,cordova,mobile-safari,readfile,Html,Ios6,Cordova,Mobile Safari,Readfile,你好 我通过jqueryajax调用从外部服务器读取HTML文件,并使用FileWriter将它们存储在本地ios6.0设备上。然后,我用FileReader读取本地存储的文件,并成功地获取文本。我想从这里实现的是从本地存储的文件(通过FileReader检索)中获取HTML内容,并将其推送到手机上的本地Safari浏览器中以显示HTML页面(当前的目标市场是iPhone 5)。下面是一些代码。有什么办法可以做到这一点吗?在安装InAppBrowser插件(我不想使用它,因为我想使用Safari

你好

我通过jqueryajax调用从外部服务器读取HTML文件,并使用FileWriter将它们存储在本地ios6.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);
   }

}

应该是
window.open(url,“\u system”)
应该在系统浏览器中打开,但我无法让它处理本地文件,只能处理外部http url。您可能想尝试
toURL()
而不是
fullPath
(我认为最近发生了变化)。至于在Safari中打开链接(意思是在应用程序之外),我不知道不使用插件是否可行(不确定InApp Browser是否允许)。使用“\u system”而不是“\u blank”在Safari中使用InApp Browser插件打开。