Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
html5 appcache:远程清单文件工作吗?_Html_Application Cache - Fatal编程技术网

html5 appcache:远程清单文件工作吗?

html5 appcache:远程清单文件工作吗?,html,application-cache,Html,Application Cache,我们的应用程序部署到物理设备上,因此起始页index.html位于设备的存储器中,该文件将引用远程托管的JavaScript文件和其他资源。也就是说,index.html本身并不托管在我们的web服务器中。在这种情况下可以使用html5应用程序缓存吗?也就是说,html元素如下所示: <html manifest="http://remotehost.com/site.manifest"> 这是否得到支持?或者,如果我们的web服务器没有托管index.html,是否有一种解决

我们的应用程序部署到物理设备上,因此起始页index.html位于设备的存储器中,该文件将引用远程托管的JavaScript文件和其他资源。也就是说,index.html本身并不托管在我们的web服务器中。在这种情况下可以使用html5应用程序缓存吗?也就是说,html元素如下所示:

<html manifest="http://remotehost.com/site.manifest">

这是否得到支持?或者,如果我们的web服务器没有托管index.html,是否有一种解决方法可以让它工作


谢谢

查看本网站的基本要求和限制:

在将文件部署到设备存储时,有一些因素会阻止appcache工作:

  • 跨源策略
    :您正在从另一个源引用清单文件->不允许
  • WebKit
    :我假设呈现index.html的WebView是WebKit驱动的(iOs/Android)。我在台式电脑上用Safari和Chrome做了一些测试,发现如果index.html是从
    http://localhost
    file://...
    URL,即使清单遵守跨源策略。这会影响您,因为设备上本地部署的index.html将由
    file://...
    在大多数情况下
所以我想到了将清单下载到设备并在index.html中引用它的想法。这导致了一些我无法修复的其他问题(我的设置是PhoneGap、jQueryMobile、iOS):

  • Mime-Type
    :您无法确保清单(从设备的存储器提供)具有正确的Mime-Type头,但如果没有这些头,浏览器将忽略清单
  • Manifest URI
    :您无法(硬编码)使用预定义的
    Manifest=“URI/to/appCacheManifest.Manifest”
    属性分发index.html文件(因为您需要在知道此URI之前从服务器下载并保存它)。此外,您不能通过操纵PhoneGap应用程序(www文件夹)分发的资产来以某种方式更改属性
直到现在,我还无法让清单在PhoneGap网络视图中工作。我读过一些文章,其中有人提到(iOS)WebView无法处理清单文件,但这是不正确的。如果您通过移动浏览器导航到Web应用程序并在主屏幕上保存书签,iOS会将此网站嵌入到Web视图中。我用我的应用程序(由Web服务器提供服务;未嵌入PhoneGap)尝试了这一点,清单工作得很好


这意味着,如果您能够将“位于设备存储器中”的文件移动到Web服务器,并且您设置了指向该位置的本机WebView,则清单应该可以正常工作。

有相关消息吗?看来这是不可能的。你在使用phonegap吗?我遇到了类似的问题,不知道你是否解决了这个问题。我有一个PhoneGap应用程序,设备上有所有资产。我希望能够更新其中的一些资产,但由于跨来源,使用清单将不起作用。我也是,@speg运气好吗?