我正在制作基于现有ios应用的html5网络应用。它针对最新的两个版本的ios Safari浏览器。要使这个Web应用程序正常工作,我需要使用api来处理当前ios应用程序和php后端之间的通信。
第一个障碍是需要定期从服务器下载api配置文件(gzip)(例如,每次应用程序启动时)以保持自身更新。然后我需要解压缩来获取配置文件,它基本上包含命令名和http地址的键值对。当我需要某些命令时,例如显示用户的个人资料图片,我按命令编号查找配置文件,找到相应的请求地址,以便我可以向服务器发出请求。
总结步骤:
按ajax下载(gziped)配置文件
我不认为html锚标记(有或没有下载属性)是一个选项。因为这样,Safari将提示用户使用文件处理应用程序(例如FilesApp)打开下载的文件。 下载必须在黑暗中进行。
解压缩下载的文件
我知道有几个js库承诺做这项工作。我还没有对它们进行测试,因为第一步没有解决。欢迎任何建议。
在进行api通话时查找这些文件中的http地址
不过应该没问题。
对于ios应用程序,我只需将配置文件下载到应用程序沙箱中,然后随意使用它。但对于Web应用程序,即使是最新的ios Safari也不支持HTML5文件系统API。我该怎么办?
答案 0 :(得分:0)
第1步。
Safari应该支持HTTP压缩。最好的方法是利用这一点,而不是找出一种使用JavaScript解压缩文件的方法。看起来PHP有几个选项:
甚至在服务器级别:
第2步。
使用sessionStorage缓存配置设置。每次用户关闭浏览器时,数据都会被清除。
第3步。
AJAX请求调用的PHP处理程序应该负责解析配置文件并将JavaScript友好的JSON发送到浏览器。在您阅读/保存到JSON.parse()
时,使用JSON.stringify()
和sessionStorage
序列化/反序列化数据。