在另一个应用程序中访问的 iPhone NSURL 字符串/HTML 本地应用程序资源

Posted

技术标签:

【中文标题】在另一个应用程序中访问的 iPhone NSURL 字符串/HTML 本地应用程序资源【英文标题】:iPhone NSURL String/HTML Local App Resource Accessed in Another Application 【发布时间】:2010-01-11 10:45:54 【问题描述】:

使用 iPhone SDK:3.0(固件 3.1.2)

我是 iPhone 开发的新手,在这里和谷歌研究了几个小时,但没有运气。问题来了:

我有一本 epub 格式的电子书,我想在应用商店出售,但应用商店要求 epub 必须包含在 iphone 应用程序中。因此,我决定制作一个应用程序,将我的电子书安装到 Stanza 或任何其他数量的 iPhone 电子书阅读器中。

所以,我使用的第一种方法是使用 NSURL(使用 stanza 协议)指向托管在网站上的 epub,例如(节://www.myebooks.gov/mybook.epub)。这工作得很好,并将 epub 加载到节中。不过……

为了最大程度地降低我的书很容易被盗版的风险,我想将 epub 作为资源包含在我的应用程序中,并将该资源传递给 Stanza 或通过指向文件系统的本地 URL 兼容的任何其他电子书阅读器(例如 stanza://var/mobile/Applications/GUID/*.app/ebook.epub)或其他方法。

我尝试加载 UIWebView,告诉它加载本地资源(例如 stalking.html)并在 html 文件中将 *.epub 链接为 ,但这也不起作用。我试过没有它的“../”和多种变体,看看是否有任何效果。

我也试过: NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"ebookTitle" ofType:@"epub"]; resourcePath = [NSString stringWithFormat:@"stanza://%@", resourcePath]; NSURL *resourceUrl = [NSURL URLWitHString:resourcePath];

[webView loadHTMLString:resourcePath baseURL:resourceUrl];

它打开节,但节显示路径只是“var/mobile/Applications/...”而不是“/var/mobile/Applications/...”我不知道这是否是唯一的问题或者如果整个事情基于权限/安全/等失败。

这似乎是有可能的,但由于沙盒和其他我不知道的安全功能,我对此表示怀疑。

谢谢,任何可以提供帮助的人。 :)

【问题讨论】:

*** 删除了我在“...”行中发布的链接,并且在将 *.epub 链接为...的 html 文件中它应该说:“stanza://.. /../../../var/mobile/Applications/AppID/AppName/ebook.epub" 【参考方案1】:

您无法访问其他 iPhone 应用程序的资源。这是 iPhone 操作系统的安全沙盒。

【讨论】:

谢谢。感谢您的帮助。【参考方案2】:

据我所知,您的应用无法访问其他应用的沙箱,这意味着您必须让您的图书应用自包含。

【讨论】:

以上是关于在另一个应用程序中访问的 iPhone NSURL 字符串/HTML 本地应用程序资源的主要内容,如果未能解决你的问题,请参考以下文章

NSURL 和 iPhone SDK 3.0 拨打电话的问题

将 NSURL 转换为 NSString

将NSURL转换为NSString

无法使用 NSURL 访问本地资源。奇怪的

相机视图在 iPhone 上不起作用,在另一个上起作用

iPhone - 在另一个模态视图中嵌套当前模态视图