Cocoa - Webkit.framework的替代品?

Wes*_*ley 11 cocoa webkit objective-c webview

webkit.framework还有其他选择吗?

有没有例如"ChromeKit.framework"?(从我搜索的内容中看不出来).

Apple不允许使用竞争的浏览器框架,或者没有人只是想做一个?

我问的原因是webkit框架中令人震惊的svg/canvas性能.

编辑:发现:http://en.wikipedia.org/wiki/Chromium_Embedded_Framework

但是没有.framework可用于链接xcode 5.它似乎也过时了(指令).有人用xcode 5吗?

小智 7

编辑:嗯,我今天再下载了64位Mac CEF存档,这一次它并没有用我刚才给了指令编译.有必要对构建设置和源代码(替换一些已弃用的方法)进行一些更改.

更新的答案:


最新版本的Chromium Embedded Framework 3可以在这里找到,最新版本来自10天前(2013/12/10).Mac OS X 64位版本包含一个用于OS X 10.7 Lion的示例Xcode项目,需要进行一些修改才能在10.9 Mavericks/Xcode 5上成功编译(见下文).构建产品cefclient.app是一个简单的简单的Web浏览器.

以下说明适用于从CEF版本存档中的64位Mac OS X 10.9/Xcode 5构建Chromium Embedded Framework和测试应用程序:cef_binary_3.1720.1548_macosx64.7z,目前可从CEF构建页面下载.在每个源代码更改后可能需要构建以显示更多问题.

  1. 提取7z存档.
  2. 在TextEdit中打开cefclient.xcodeproj/project.pbxproj并将所有出现的"10.7"替换为"10.9"(无引号),将"10.6"替换为"10.9"(无引号).
  3. 在Xcode 5中打开cefclient.xcodeproj并尝试构建它(cmd-B).在"问题"窗格中找到"cefclient项目"问题,然后单击"验证项目设置/更新到推荐设置" - >执行更改.Xcode将更新项目文件.
  4. 在"libcef_dll_wrapper"问题下,选择涉及UINT_MAX的问题,并在代码中将"UINT_MAX"替换为"UINT32_MAX".
  5. 在"cefclient_helper_app"问题下,选择"resource_util_mac.mm"子项以跳转到源代码,并将弃用的AmIBundled()方法替换为以下实现:

    bool AmIBundled() { return ([NSBundle mainBundle] != nil); }

  6. 在"cefsimple"问题下,选择"cefsimple_mac.mm"子项以跳转到源代码,并将不推荐的...loadNibNamed...行替换为 :

    [[NSBundle mainBundle] loadNibNamed:@"MainMenu" owner:NSApp topLevelObjects:nil];

  7. 对"cefclient issues" - >"cefclient_mac.mm"子项重复步骤6.

它应该在这一点上成功构建.忽略链接器警告; 我似乎无法修复它们,无论如何一切似乎都能正常工作.

要构建cefclient的较小(~80MB)发布版本:

  1. 单击项目窗口左上角的"全部"目标 - >选择"编辑方案..."
  2. 在左侧视图中选择"运行"项,然后选择"构建配置" - >"发布".

cefclient和cefsimple构建产品将在@{PROJECT_DIR}/xcodebuild/Release文件夹中,而CEF框架将在@{PROJECT_DIR}/Release文件夹中.

不完全即插即用,嗯?如果这对您有用,请告诉我.