【问题标题】:OpenURL to a file in NSBundleOpenURL 到 NSBundle 中的文件
【发布时间】:2013-05-16 06:10:28
【问题描述】:

我有一个文件,我想在 safari 中打开它(或在 safari 中将其称为视图)。 我将此文件添加到我的捆绑资源中。

并执行以下操作:

NSString *path = [[NSBundle mainBundle] pathForResource:@"tryFile.txt" ofType:nil inDirectory:nil];
NSURL *url = [NSURL fileURLWithPath: path];
NSLog(@"path: %@ \n url:%@ \n can open url:%d",path,url,[[UIApplication sharedApplication] canOpenURL:url]);
BOOL didGo = [[UIApplication sharedApplication] openURL:url];
NSLog(@"didgo?: %d",didGo);

当然,正如沙盒环境所说,我无法在 safari 中打开文件。它说,canOpenURLyes 但然后 didGoNO

如何在不设置本地服务器的情况下执行此操作。请建议。 我应该将数据保存在一个变量中,然后用该数据打开一个 html 页面......还是什么?

编辑: 这些是日志:

path: /var/mobile/Applications/C78C7CD8-22C7-468A-AA5D-AF22C6042378/TryApp.app/tryFile.txt 
url:file://localhost/var/mobile/Applications/C78C7CD8-22C7-468A-AA5D-AF22C6042378/TryApp.app/tryFile.txt 
can open url:1



didgo?: 0

请注意不能在 web 视图中打开文件。该要求希望它在 safari 中打开。无论如何,这个例子是一个文本文件...可以打开的文件可以是任何文件,webview 不支持所有文件类型。

【问题讨论】:

  • 当“openURL”被调用时,在 Safari 中打开什么?
  • 在 webView 中加载文件
  • @NikitaP 参考这个链接stackoverflow.com/questions/11035564/…,需要在UIWebview中打开
  • 可以观察到路径是file://..在safari中打开应该是http://..
  • @prasaddevadiga:是的,我知道。这就是为什么我希望数据是否可以转换为 html 字符串或其他东西,可以传递给在 safari 中打开

标签: iphone ios objective-c safari openurl


【解决方案1】:

txt 文件位于您的应用程序沙箱中。由于 iOS 的安全性,您尝试在 Safari 中加载的 URL 不会被加载。 Read more about it here
作为一种解决方法,您可以在应用程序中使用 UIWebView 并在其中打开文件。

干杯!
阿马尔。

【讨论】:

    【解决方案2】:

    您需要设置服务器或在应用内的UIWebView 中打开页面。

    【讨论】:

      【解决方案3】:
       NSString *path = [[NSBundle mainBundle] pathForResource:@"tryFile.txt" ofType:nil inDirectory:nil];
      
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:path]];
      

      此代码用于直接在 safari 中打开 url,或者您可以在 webview.thanks 中使用 Webview 和直接打开 url

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        相关资源
        最近更新 更多