我们正致力于桌面Mac的Objective C应用程序。
我们使用WebView组件来显示HTML页面。
从本地文件系统加载页面时,页面上不显示Flash影片。 事实证明,问题并不完全与Flash有关。 大多数WebView插件都丢失了。
从Internet加载页面时,Flash会正常显示,并且有许多插件可用。
我的Mac上没有出现此问题,但30%的客户会遇到此问题。 它在MacBook(不是MacBook air)上再现,Mac OS版本是10.5.8。
伙计们,请帮助我们,我不知道如何解决这个问题。 这是妨碍我们发布产品的唯一障碍。
为什么在加载本地页面时WebView插件不可用?
可能是问题的根源 - Safari配置,Mac安全设置,某些软件安装?
如何在Mac上重现问题?
这是我们用于本地页面加载的WebView初始化代码。
IBOutlet WebView* webView;
...
[[webView preferences] setPlugInsEnabled:YES];
WebFrame *mainFrame = [webView mainFrame];
NSString* path = [NSString stringWithFormat:@"%@/page.html",[[NSBundle mainBundle] resourcePath]];
NSURL* url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[mainFrame loadRequest:request];
您是否注意到任何缺陷?
更新1
更新2
最小的测试,我只留下了打开本地页面所需的代码。 没有显示诊断窗口。 Test application, simple
简单测试的Application Delegate的完整源代码
#import "WebViewAppDelegate.h"
#import <WebKit/WebView.h>
#import <WebKit/WebFrame.h>
@implementation WebViewAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[[webView preferences] setPlugInsEnabled:YES];
WebFrame *mainFrame = [webView mainFrame];
NSString* path = [NSString stringWithFormat:@"%@/page.html",[[NSBundle mainBundle] resourcePath]];
NSURL* url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[mainFrame loadRequest:request];
}
@end
答案 0 :(得分:2)
您的插件和提醒可能会阻止您关联的js,螃蟹不会在您的网页浏览中运行。
我可以通过指向包内容中的html文件来运行另一个应用程序webview中的swf,并且没有启用任何“插件”。
您可以尝试将WebKitDeveloperExtras booleen true添加到您的prefs文件中,以便您可以使用webinspector进行检查。
答案 1 :(得分:1)
我在Google的“SketchUp”WebDialog中运行它,Nib文件具有与您相同的精确选项设置。如果您不熟悉SU,它可以使用Ruby控制台,您可以编写或提供html文件。免费版和一点红宝石就是所需要的。 约翰
答案 2 :(得分:1)
确定,
从下载运行v2失败,我仍然得到插件警报,没有螃蟹
所以我重建了xcode项目并将10.5作为目标,然后手动将html和swf移动到内容中,并报告所有的safari插件并在10.5.8上运行
所以虽然你的plist说10.5 [min]你的sdk目标是10.6,所以它不会在10.5上运行
约翰