需要说明的是,该 Web 应用程序正在缓存并且在 Mobile Safari 中离线运行良好。
问题是当它被添加到运行 iOS 6.0.1 的 iPhone 4s 和 iPad 2 的主屏幕时。它不会脱机工作并给出连接到互联网的网络错误,即“无法打开 MYWEBAPP。无法打开 MYWEBAPP,因为它未连接到互联网”
我已经调试了几个小时,但似乎找不到解决方案。我在控制台中没有收到任何错误,我正在运行 Jonathan Stark 的 debugging code
我已经在桌面 Safari、Chrome 和 Firefox 的开发人员工具中在线/离线测试了该应用程序。以及带有 Safari 设备的 Web Inspector。结果在 iPhone 或 iPad 上都是一样的。它们都将缓存 Web 应用程序并在 Mobile Safari 中工作,但在添加到主屏幕时不起作用。离线或在线都没有错误。
据我所知,我正在使用最佳实践:
添加了 HTML header :<html manifest="photo.appcache">
我还尝试过为 list 文件使用不同的名称,包括:cache.manifest 和 offline.manifest,因为我读到它有所不同,但在我的测试中,名称是什么并不重要,只要扩展名是 .manifest 或 .appcache,并在 .htaccess 文件中适当提供。
添加了正确的 MIME 类型:AddType text/cache-manifest appcache manifest
我也试过:AddType text/cache.manifest manifest ,
AddType text/cache.manifest .manifest manifest , AddType text/cache-manifest .manifest
我认为这行不通:AddType text/cache.manifest但我不记得了。在大多数情况下,这并不重要,我坚持使用:
AddType text/cache-manifest 应用缓存 list
因为那是 HTML5 移动样板中的内容。
添加:
网络: *
到应用程序缓存文件。我相信这允许下载所有内容并使所有链接都有效。
<meta name="apple-mobile-web-app-capable" content="yes">
因为我在 SO 上读到这里解决了一个类似于我的问题,但我可以确认它在我的测试中不起作用。在按下主屏幕图标时删除此行或将内容设置为“否”将重定向到 Mobile Safari 而不是打开全屏。 我已经把它缩小到它是 iOS 6 中的一个错误(我实际上使用的是 iOS 6.0.1),因为我知道现在已经将浏览器中的网络应用程序和添加到主屏幕。我在这里发布这个问题是为了看看是否有任何其他开发人员遇到了同样的问题。
最佳答案
我已经解决了这个问题。对于 iOS 6 中的主屏幕网络应用程序,我推荐以下内容。
出于测试目的,使用 Web Inspector 和一个不错的 JS 脚本(如 Jonathan Stark 的)来了解应用程序何时缓存在 Mobile Safari 中:
成功缓存后,将应用程序添加到您的主屏幕并保持打开状态,以便单独缓存主屏幕版本。它必须完全缓存才能脱机工作。
由于我的应用程序缓存是 22mb 的数据,并且数据缓存对于网络应用程序是单独的,所以我遇到的问题是没有让主屏幕应用程序打开足够长的时间来进行缓存。
就用户体验而言,这很糟糕,但数据是分开的也很好。我可以确认这一点,因为如果您从 Safari 中删除网站数据,主屏幕网络应用程序仍然可以运行。
据我所知,没有办法调试为主屏幕网络应用程序缓存的数据或数据的存储位置。
关于ios - 在 iOS 中添加到主屏幕时,HTML5 网络应用程序不缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13302501/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择