【问题标题】:Good file type for displaying text and images in a UIWebView用于在 UIWebView 中显示文本和图像的良好文件类型
【发布时间】:2011-05-08 00:32:56
【问题描述】:

UIWebView 可用于显示各种文件类型(例如:a.xls .key.zip .numbers.zip .pages.zip .pdf .ppt .doc .rtf .rtfd.zip .key .numbers 和.pages)。

我正在开发我的应用程序的“如何使用此应用程序”部分,并希望找到一种好的文件类型(本地存储)以在 UIWebView 中显示一些文本和图像。

问题在于对最终结果缺乏控制。例如,文本大小似乎对 .rtf 或 .doc 文件都没有影响。我想对文本和图像属性进行合理的控制。我可以使用 pdf,但我不喜欢 pdf 的框架方式,使屏幕上的所有内容都变小了。

有没有人有在 UIWebView 中显示各种文件类型的经验。哪种文件类型可以对最终结果进行良好的创意控制?

【问题讨论】:

    标签: iphone uiwebview


    【解决方案1】:

    我会使用旧的 html。它在 UIWebview (duh) 中有很好的支持,并且相对容易学习和创建。

    更新:

    要从 UIViewController 显示本地文件,请使用这样的过程

    UIWebView *myWebView = [[UIWebView alloc] initWithFrame:self.view.frame];
    [view loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"documentation" ofType:@"html"]]]];
    while ([view isLoading]) {
        // wait...
    }
    [self.view.addSubview:myWebView];
    [view release];
    

    或者,对于远程文件:

    UIWebView *myWebView = [[UIWebView alloc] initWithFrame:self.view.frame];
    [view loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.myserver.com/ios/documentation/documentation.html"]]];
    while ([view isLoading]) {
        // wait...
    }
    [self.view.addSubview:myWebView];
    [view release];
    

    【讨论】:

    • 嗯...新奇的想法。我想我可以将 html 文件存储在本地。不幸的是,我不懂 html,也不想学习在 iPhone 应用程序中创建一个简单的页面。我想我可以使用像 iWeb 这样的 html 生成器。
    • 是的,确实很新颖 :) html 相当简单,尤其是如果您了解 xml.. 这里有一个网站可能会有所帮助 utoronto.ca/web/HTMLdocs/NewHTML/htmlindex.html
    • 似乎是一项简单的任务,但我在 Web 视图中显示本地 html 文件时遇到了麻烦。有什么建议吗?
    • +1 用于 HTML。学习它。不会花很长时间,这是儿戏,而且知道非常有用:)
    • 对不起,我没说清楚。我遇到的真正困难是用图像显示 html。图像参考总是最终丢失。你有这方面的经验吗?
    【解决方案2】:

    使用 html 是最简单的选择。但 PDF 是最灵活的解决方案。我曾经在一个项目中所做的是使用 Core Graphics CGContextDrawPDFPage 来呈现 pdf。 Quartz 2D Programming Guide 中有很好的记录。部分名称为“PDF 文档创建、查看和转换”。一旦你让它工作,你可以使用任何导出为 pdf 的软件来创建你的内容。

    【讨论】:

      【解决方案3】:

      我肯定会为此使用 HTML,它为您提供双重灵活性,您可以从与您的应用程序捆绑的预缓存文件加载,或者对于动态常见问题解答,它可以托管在网络服务器上并从那里交付

      如果将 UIWebView 包装在控制器上,则可以执行如下简单的代码

      [self openURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"help" ofType:@"html"]]];
      

      [self openURL:[NSURL URLWithString:@"http://somedomain.com/iPhoneHelp/"]];
      

      打开 URL 方法看起来像

      - (void) openURL:(NSURL *)url
      {
          HelpWebViewViewController *webView = [[HelpWebViewViewController alloc] initWithURL:url];
          [self.navigationController pushViewController:webView animated:YES];
          [webView release];
      }
      

      在这个web控制器上提供init方法来设置一个全屏UIWebView的url

      【讨论】:

        【解决方案4】:

        你可以使用UIWebView method

        loadData:MIMEType:textEncodingName:baseURL:

        并使用NSData 类方法(dataWithContentsOfFile:)从本地文件加载数据。

        HTML 是最好的格式,因为这就是 webview 最初的用途。 HTML 提供了广泛的功能和外观。

        【讨论】:

          【解决方案5】:

          由于您使用的是 UIWEbView,我建议您查看 CSS。 Webkit 已经过编码,因此 CSS 看起来最接近原生代码渲染。

          您还将获得使用 Apple 对该功能的大力支持的优势。如果您在 iOS 中使用 Adob​​e 或 Microsoft 的格式,您已经为自己制造了障碍

          如果您希望在 UIWebView 中显示整洁的高清图像,这里有一个关于 Incubator 的好建议:http://iphoneincubator.com/blog/windows-views/display-images-in-uiwebview

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-22
            • 2020-04-17
            • 1970-01-01
            • 2020-01-27
            相关资源
            最近更新 更多