2009-12-18 129 views
2

是否有可能编写一个web应用程序,然后将其嵌入到本机应用程序中,以便它可以在没有数据的情况下启动并通过应用商店销售?iPhone:本地应用程序与本地存储的Web应用程序?

Pre可以很容易地引用本地文件结构中的文件,因此构建webapp(HTML,CSS和Javascript)并将其嵌入到本机应用程序非常简单。

是否有可能采用相同的纯HTML,CSS和Javascript(没有Mojo/Webos特定的代码)并将其以相同的方式嵌入到本机iPhone应用程序中?这将使用户看起来好像主菜单中的图标启动web应用程序,但应用程序可以在没有任何数据的情况下访问,并且可以通过应用商店销售。

感谢, 〜Ĵ

回答

0

我不明白为什么没有,只是给了一个UIWebView本地存储包的的baseUrl。

0

是的,这是完全可行的。您只需在应用程序包中构建HTML文件的绝对路径,使用“file:///”作为协议,并将UIWebView的URL指向它。你可以使用iPhone OS模拟器做一个快速和肮脏的测试,并在Safari.app上写上类似“file:///foo/bar.html”的内容,前提是HTML存在,它会加载得很好。

0

问题在于包装它。根据我所能说的(我完全可能完全错误),苹果只是将所有文件转储到一个资源文件夹中,而不管项目中的目录结构如何。因此,如果您创建引用images/logo.png和javascript/script.js的网页,那么这些文件将突然位于/而不是其各自的文件夹中。鉴于此,从一开始就可以创建一个完全平坦结构的Web应用程序。

+1

这是不正确的。您可以通过将目录本身作为资源包含在Xcode中来维护完整的目录结构。我这样做是为了提供应用程序内基于HTML的帮助,其中包含用于图像的章节和子目录的子目录。 – 2009-12-18 15:04:54

0

没有技术上的原因我知道为什么这应该是问题。

但是,苹果总有可能拒绝这样的应用程序 - 他们当然不会拒绝应用程序以前没有“行为正常”,而且网络应用程序有一些特定的特性,使得它们不是感觉像本机应用程序。

这样的拒绝可能可以通过重新提交来解决,因为这样的事情当然没有标准,但它肯定是需要注意的事情。

+0

但是,有很多应用程序可以在商店中执行此操作。 – 2009-12-18 05:55:00

+0

的确,有很多使用嵌入式WebView的应用程序。但是,* I *不知道任何仅由WebView组成的**。至少,这些应用程序中的大多数都会使用顶级栏的本机控件或其他内容,并使用大量的WebView来呈现内容。但是就像我说的,不太可能会被拒绝,但不是不可能的。 – 2009-12-18 06:03:18

3

在我的应用程序中,我有一个完整的基于HTML的手册,我使用UIWebView来显示。 HTML,CSS和图像全部存储在本地应用程序包中的帮助目录中。我简单地使用下面的代码加载第一页:

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Help"];     
NSURL *helpURL = [NSURL fileURLWithPath:[path stringByAppendingPathComponent:@"helpintroduction.html"]]; 

NSURLRequest *URLReq = [NSURLRequest requestWithURL:helpURL]; 
[webHelpView loadRequest:URLReq]; 

并且一切都加载并显示,就好像它在远程服务器上一样。

为了保留HTML等文件的完整目录结构,只需将这些文件添加到您的Xcode项目中,然后拖动到您可以访问的目录中,然后添加一个新的构建阶段Copy Files。使目的地Resources和您想要用作网络文件基础的路径(在上例中为帮助)。最后,将您添加到项目中的所有HTML等资源拖放到这个Copy Files构建阶段,以便它们最终与您的应用程序捆绑在一起。

我没有看到为什么这种方式不适用于更复杂的Web应用程序,而且我没有看到苹果公司针对在自己的应用程序中执行此操作的人员采取任何行动。

+0

所以这将扩展以下方法所使用的方法:http://bit.ly/4YYzW这样我可以在我的webapp中的目录结构中引用图像和脚本? - 顺便说一句,感谢这个令人敬畏的答案。我只是新手,试图确保我从正确的角度来解决这个问题。 〜J – Jordan 2009-12-25 07:06:55

+0

是的,它应该。他们声称你不能拥有子目录是错误的。在上面给出的例子中,我在帮助目录中有很多子目录,并且一切都正确加载。我从来没有使用过PhoneGap,但是如果它产生的所有内容都可以从Web服务器上读取,那么没有理由不能从应用程序的资源中本地加载。 – 2009-12-25 21:14:05

0

如果您不是一个编码器和您有兴趣仅适用于iOS,您可以按照下列步骤操作:

  • 下载Xcode的
  • 下载简单的Web视图的应用程序从https://github.com/nomtek/iOSWebViewApp
  • 打开简单的Web视图应用程序在Xcode
  • 添加您的HTMLS到项目文件结构
  • 运行你的应用程序瞧:)

如果您不需要访问任何电话特定功能(只需标准Web视图),则此方法非常有用。由于此方法不会加载任何额外的库,加载时间会很短。

相关问题