为 iOS 构建自己的基于 WebKit 的 UIWebView 可行吗?
Posted
技术标签:
【中文标题】为 iOS 构建自己的基于 WebKit 的 UIWebView 可行吗?【英文标题】:Feasible to build your own WebKit-based UIWebView for iOS? 【发布时间】:2011-07-28 11:34:23 【问题描述】:Apple 已经(部分)开源了他们在 ios 中使用的 WebKit 和 javascriptCore 引擎:http://www.opensource.apple.com/release/ios-433/
已经可以在 iOS 上构建、使用和发布您自己的 JavaScriptCore 版本。但是,是否可以对 WebKit 的渲染引擎做同样的事情呢? iOS 上的 UIWebView 非常有限。它缺少的重要功能是访问 JavaScriptCore JavaScript 上下文对象。没有它,在共享同一个 JS 引擎的同时,直接在 JavaScriptCore 中运行一些代码和在 web 视图中运行一些代码几乎是不可能的。所以我有兴趣构建我自己的基于 WebKit 的 Web 视图,它公开 JavaScript 上下文。
有没有在这方面做过任何工作的项目? 编译后的 Web 视图库是否会太大而无法随应用一起提供?
谢谢!
【问题讨论】:
【参考方案1】:这是非常可行的。事实上,它已经完成了。 Impact 是一个编译自己的 JavaScript 核心的 iOS 游戏引擎。 Here's a blog post with some technical details.
我不会在这里详细说明,链接应该提供足够的详细信息。
【讨论】:
感谢您的回答,但这不是我要找的。我知道 Impact,我在我的应用程序中使用了他们构建的 JavaScriptCore。我想要的是从源代码构建我自己的 UIWebView,完整的 html 渲染引擎和所有,而不仅仅是 JS 引擎。【参考方案2】:这是可能的,但 Apple 不允许。出于同样的官方原因,他们不允许谷歌在他们的浏览器中发布他们自己的 WebKit 版本。 Google 必须使用 UIWebView。
【讨论】:
确实如此。不过,我主要对技术方面感兴趣,即使 Apple 不允许它上架 App Store。 那么在这种情况下,几乎可以像其他任何事情一样...... :-) 当然,这将是很多工作,因为浏览器不仅仅是 WebKit 渲染器和 JavaScript(V8? ...) 引擎。它处理很多网络的东西,SSL,这就是简单的东西! 当然可能,但是从源代码为iOS构建WebKit是否可行?为 iOS 编译和运行 JavaScriptCore 不是问题,网络也不是问题。但是从源代码构建 HTML 渲染引擎并让它运行起来:这是个大问题 :) 好吧,它已经被编写为为 iOS 编译了!证明是移动Safari。所以你绝对没有理由不能轻松做到这一点! 真正的问题是——你会对仅仅一个渲染引擎感到满意吗?如果您构建将其连接到 JS,并发现 XHR 不起作用,因为您没有实现任何网络代码,该怎么办?还是因为您没有将 HTML5 视频绑定到正确的编解码器而导致 HTML5 视频无法正常工作?【参考方案3】:不幸的是,答案是否定的。
问题是它是否可行。基于没有收到任何答案,也没有在网上找到任何信息,我得出的结论是,这不是不可能,但工作量太大,可行。
【讨论】:
您得出这个结论是因为没有人回答您的问题,还是您还有其他信息? @MatthewGertner 问题是它是否可行。基于没有收到任何答案,也没有在网上找到任何信息,我得出的结论是,这不是不可能,而是工作量太大:(以上是关于为 iOS 构建自己的基于 WebKit 的 UIWebView 可行吗?的主要内容,如果未能解决你的问题,请参考以下文章
vue组件库基于@vue/cli构建typescript版UI库 -组件文档网站
基于 Amazon Amplify 构建自己的首个 iOS 应用程序
基于 Amazon Amplify 构建自己的首个 iOS 应用程序