UIWebview 如何在 iOS 中进行渲染?

Posted

技术标签:

【中文标题】UIWebview 如何在 iOS 中进行渲染?【英文标题】:How does UIWebview do its rendering in iOS? 【发布时间】:2011-09-23 09:24:33 【问题描述】:

我一直在使用UIWebView 渲染文件格式,例如 Keynote、Pages、Numbers、PPT 等。另外,我尝试通过stringByEvaluatingjavascriptFromString: 访问各种文档属性,例如标题、宽度、高度、innerhtml 等. 和 web 视图返回这些的有效值。

所以,我的问题是,UIWebView 实际上是如何工作的?它会在渲染之前将所有内容都转换为 HTML 吗?非html文件如何返回innerHTML等属性?

【问题讨论】:

你看过开源部分(WebKit)吗? 谢谢大卫!这是一个很好的建议。我去看看。 【参考方案1】:

Apple 将大多数格式转换为 HTM 会很疯狂。

【讨论】:

谢谢!那么对于PPT文件,它是如何返回innerHTML等属性的呢?它具有完全有效的 div、paras 等。为其他文件类型生成 HTML 代码应该同样乏味。 谢谢!但是我的问题仍然成立。我也有和你一样的疑惑。 我在撰写本文时不知道,但这个答案目前已经过时(现在是错误的),请参阅:***.com/questions/15971969/… 了解最新信息【参考方案2】:

您列出的各种格式很可能是由 Webkit 插件呈现的。

查看http://developer.apple.com/library/mac/#documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/WebKitPluginTopics.html 的文档。还可以编写插件以允许从脚本环境调用 Objective-C 方法。这可能会允许返回诸如 innerHTML 之类的属性。

我实际上并没有开发任何这些插件,但它似乎允许 UIWebView 扩展为呈现格式,如 PPT 并公开属性。基于此,我不认为内容正在转换为 HTML,而是自定义绘制,但通过插件公开了宽度、高度等属性。

【讨论】:

以上是关于UIWebview 如何在 iOS 中进行渲染?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 6 中渲染 PPT 文件

无法在 iOS 中更改 UIWebView 的背景

IOS Html富文本渲染方式:DTCoreTextWKWebViewUIWebView的内存占用对比

如何判断 UIWebView 何时完成渲染(未加载)?

UIWebView,WKWebView 与js交互

Facebook Javascript 在本机 ios6 UIWebView 中登录(在 SAFARI 上工作)