Cocoa - Webkit.framework的替代方案?

11

有没有替代webkit.framework的选择?

例如,是否有“ChromeKit.framework”?(从我搜索的结果来看似乎没有)。

是因为苹果不允许提供竞争浏览器框架,还是没有人想制作一个?

我问这个问题的原因是webkit框架中svg/canvas表现差劲。

编辑:找到这个:http://en.wikipedia.org/wiki/Chromium_Embedded_Framework

但是没有可用于在xcode 5中链接的.framework。它似乎也已过时(说明)。是否有人在xcode 5中使用过此框架?

1个回答

7

编辑:好吧,我今天再次下载了64位Mac CEF存档文件,这次它没有按照我之前给出的说明编译。需要对构建设置和源代码进行一些修改(替换一些已弃用的方法)。

更新的答案:


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

以下说明是为了在64位Mac OS X 10.9 / Xcode 5上从CEF发行存档cef_binary_3.1720.1548_macosx64.7z上构建Chromium嵌入式框架和测试应用程序,目前可以从CEF builds page上下载。可能需要在每个源代码更改后进行构建以显示更多问题。

  1. 提取7z存档。
  2. 在TextEdit中打开cefclient.xcodeproj/project.pbxproj,并将所有出现的“10.7”替换为“10.9”(不带引号),将所有出现的“10.6”替换为“10.9”(不带引号)。
  3. 在Xcode 5中打开cefclient.xcodeproj并尝试构建它(cmd-B)。在“Issues”窗格中找到“cefclient project”的问题,然后单击“Validate Project Settings / Update to recommended settings” -> Perform Changes。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”,请重复步骤6 ->“cefclient_mac.mm”子项。

此时应该可以成功构建。忽略链接器警告;我似乎无法修复它们,但一切似乎都可以正常工作。

要构建较小的(约80MB)cefclient发布版本,请按照以下步骤操作:
  1. 单击项目窗口左上角的“全部”目标 -> 选择“编辑方案...”
  2. 在左侧视图中选择“运行”项,并选择“构建配置” -> “发布”。
cefclient和cefsimple构建产品将位于@{PROJECT_DIR}/xcodebuild/Release文件夹中,而CEF框架将位于@{PROJECT_DIR}/Release文件夹中。
不是很简单易懂吧?如果这对您有用,请告诉我。

我在Xcode 5上尝试过这个,但是无法编译它。我在他们的论坛上寻求帮助,但他们似乎并不认为这是一个优先事项。 - user429620
我意外地离开了,我的赏金已经过期了。我该如何履行承诺的奖励? - user429620
@Wesley,刚看到这个。嗯,我不认为有任何办法,但不要担心,事情总会发生的。 - user2975337

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接