我正在编写一个在iOS上脱机使用的Web应用程序.我已经创建了一个清单,我正在服务它text/cache-manifest
,它通常在Safari中运行时工作正常.
如果我将其作为应用程序添加到我的主屏幕,然后打开飞行模式,它根本无法打开应用程序 - 我收到错误,它提供关闭应用程序.(我认为这是离线应用程序的全部目的!)
当我第一次在线加载应用程序时,我可以在我的日志中看到它正在请求清单中列出的每个页面.
如果我关闭飞行模式,并加载应用程序,我可以看到它请求的第一个文件是我的main.html文件(它都列在清单中,并具有manifest=...
属性).然后它会请求清单和我的所有其他文件,为所有文件获取200个(对于在此加载期间第二次请求的任何内容,304).
当我在Chrome中加载页面并点击时,日志显示它在服务器上尝试访问的唯一内容是"/favicon.ico"(这是404,我认为iOS Safari不会尝试加载,无论如何).清单中列出的所有文件都是有效的,并且没有错误地提供.
Chrome检查员在"APPLICATION CACHE"下列出了我所列出的所有缓存文件.整个文件集大约是50 KB,在我找到的离线资源的任何限制下都是如此.
这是否应该有效,即我是否应该只使用HTML/CSS/JS创建一个离线iOS应用程序?我在哪里弄清楚为什么它无法脱机工作?
(相关但对我来说听起来并不完全相同,因为它是关于Safari而不是一个独立的应用程序:" 无法让一个网络应用程序在iPod上脱机工作 ")
我正在玩Rhino,我已经成功使用了stdlib中的Java类,但没有使用我编译的Java代码.
例如,这工作正常:
print(new java.util.Date());
Run Code Online (Sandbox Code Playgroud)
但是使用NanoHTTPD(单个.java文件,没有名称空间,相同的文件夹),我根本就没有运气:
js> new Packages.NanoHTTPD()
js: "<stdin>", line 4: uncaught JavaScript runtime exception: TypeError: [JavaPackage NanoHTTPD] is not a function, it is object.
at <stdin>:4
Run Code Online (Sandbox Code Playgroud)
我确信这很简单.我错过了什么?
编辑:我发布它是这样的:
$ CLASSPATH=. java -jar rhino.jar
Run Code Online (Sandbox Code Playgroud)
或这个:
$ java -classpath . -jar rhino.jar
Run Code Online (Sandbox Code Playgroud)
或者我将NanoHTTPD.java移动到文件夹"./nano"中,添加package nano;
到文件顶部,编译它,然后替换为".".在上面的类路径分配中使用"nano".
无论我怎么做,从翻译中我看到:
js> java.lang.System.getProperty("java.class.path")
/Users/me/blah/rhino.jar
Run Code Online (Sandbox Code Playgroud)