Phonegap混合iOS应用程序中加载的远程网页可以将数据保存到iOS文件系统吗?

Posted

技术标签:

【中文标题】Phonegap混合iOS应用程序中加载的远程网页可以将数据保存到iOS文件系统吗?【英文标题】:Can a remote webpage loaded in Phonegap hybrid iOS app save data to iOS filesystem? 【发布时间】:2014-03-06 00:54:40 【问题描述】:

我们有一个托管在服务器上的移动网络应用程序。我们想使用 Phonegap 将其转换为混合应用程序,但我们不想在混合应用程序的 www 文件夹中嵌入 html 和其他代码。我们希望页面保持远程,以便更新它们可以独立于应用程序。这是一个内部 ios 应用程序,我们不打算将其提交给 Apple。

这个移动网络应用程序会进行一些网络服务调用,这些调用会返回一些 json 响应。在混合应用程序中,我们希望将 json 响应保存在 iOS 设备文件系统上。我知道如果我们将 web 应用程序嵌入到混合应用程序的 www 文件夹中,我们可以使用插件轻松地做到这一点。但是由于 web 应用程序是远程托管的,phonegap 插件是否仍然可以与 javascript 代码对话并获取 web 服务响应并保存到设备?

【问题讨论】:

【参考方案1】:

是的,您可以使用 文件 插件来写入、读取、删除、上传和下载文件。 http://docs.phonegap.com/en/3.3.0/cordova_file_file.md.html#File

在 JS 中通过 HTML 与插件通信的示例代码:

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

// device APIs are available
//
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.write("some sample text");

为了通过您的应用与网络服务进行通信,您必须将 config.xml 更新为 <access origin="*" />。 jQuery Ajax 非常适合检索 JSON。

【讨论】:

以上是关于Phonegap混合iOS应用程序中加载的远程网页可以将数据保存到iOS文件系统吗?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript/jquery:如何检测在其他窗口或应用链接中加载的页面?

无法访问 iframe 中加载的自己域上的 httponly 标记 cookie

为啥内存中加载的 DLL 与原始 DLL 文件不完全对应?

Phonegap 原生控件(Android)与html混合

维护 PhoneGap 混合/Web 应用程序代码库

混合 PhoneGap 和本机应用程序视图