0

我正在基于现有的 ios 应用程序制作一个 html5 网络应用程序。它针对 ios Safari 浏览器的最新两个版本。为了让这个 web 应用程序正常工作,我需要使用一个 api 来处理当前 ios 应用程序和 php 后端之间的通信。

第一个障碍是需要定期从服务器下载 api 配置文件(gzipped)(例如每次应用程序启动时)以保持自身更新。然后我需要解压得到配置文件,它基本上包含命令名和http地址的键值对。当我需要某些命令时,例如显示用户的个人资料图片,我通过命令号查找配置文件以找到相应的请求地址,以便我可以向服务器发出请求。

总结步骤:

  1. 通过 ajax 下载(gziped)配置文件

    我不认为 html 锚标记(带或不带下载属性)是一种选择。因为这样 Safari 会提示用户使用文件处理应用程序(例如 FilesApp)打开下载的文件。下载必须在黑暗中进行。

  2. 解压下载的文件

    我知道有几个js库承诺做这个工作。我还没有对它们进行测试,因为第一步没有解决。欢迎任何推荐。

  3. 每当进行 api 调用时,在这些文件中查找 http 地址

    应该没问题。

对于 ios 应用程序,我可以简单地将配置文件下载到应用程序沙箱中,然后用它做任何我想做的事情。但是对于 web 应用程序,即使是最新的 ios Safari 也不支持 HTML5 文件系统 api。我能做些什么?

4

1 回答 1

0

Step 1.

Safari should support HTTP compression. Your best best is to leverage this, as opposed to figuring out a way to unzip a file using JavaScript. It looks like there are a few options with PHP:

Or even at the server level:

Step 2.

Use sessionStorage to cache the configuration settings. The data will be cleared out each time a user closes their browser.

Step 3.

The PHP handler that is called by the AJAX request should take care of parsing the config files and send JavaScript-friendly JSON to the browser. Use JSON.parse() and JSON.stringify() to serialize/de-serialize data as you read/save to sessionStorage.

于 2013-08-16T17:21:22.747 回答