我有一个 Cocoa 应用程序,我正在尝试编写它来显示一个网页。此网页在后台有一个嵌入式 quartz 组合,可以在 Safari 中播放和工作,但它确实显示在我的 Cocoa 应用程序中(它只是在后台显示缺少的插件图标)。
奇怪的是它可以在我测试它的另一台计算机上运行。我是否在某处缺少可能导致此问题的框架或插件?
另一个注意事项:似乎没有插件可以工作。例如,当 WebView 显示 youtube.com 时,它无法播放视频,因为它表示未安装 Flash 插件。同样,相同的代码可以在另一台计算机上运行,但不能在这台计算机上运行。
谢谢!任何帮助将不胜感激!
最佳答案
您需要在 WebView 中显式启用插件支持。您可以在 Interface Builder 中执行此操作(选中 Enable: Plugins 复选框)或在代码中通过调用 -setPluginsEnabled: 在 Web View 的 WebPreferences 对象上执行此操作:
WebPreferences *prefs = [webView preferences];
[prefs setPlugInsEnabled:YES];
如果您确实启用了插件,请检查插件是否与您正在创建的架构/运行时兼容。如果您正在构建 64 位或垃圾收集应用程序,则您加载的任何 WebKit 插件都必须支持该架构。例如,Flash 插件不会在支持 GC 的应用程序中加载,尽管它在 64 位中加载,因为作为 NPAPI 插件,它在 32 位沙箱中加载。
关于objective-c - WebView 实现中未加载浏览器插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425760/