2

我正在构建一个带有 web 视图的简单应用程序来包装 OSX 的 HTML5 应用程序。Web 视图侦听来自应用程序的消息,然后调用一些 javascript 函数来发回一些数据。在我尝试将另一个页面加载到 Web 视图之前,这非常有效。看起来 web 视图在后台释放 ResourceLoadDelegate 然后尝试再次调用它,导致我的错误消息。

我的项目使用一个类作为一个巨大的应用程序委托,并且我将 UIDelegate、ResourceLoadDelegate 和 FrameLoadDelegate 都设置为“self”。如果我没有设置 ResourceLoadDelegate,我不会收到错误消息,但是我无法接收消息。

有谁知道我的问题可能是什么?这是我的代码:

我的标题:

@interface BFAppDelegate : NSObject <NSApplicationDelegate> {
    WebView *webView;
} 

@property (nonatomic, strong) IBOutlet WebView *webView;

@end

我的课:

@implementation BFAppDelegate
@synthesize webView;

- (void)applicationDidFinishLaunching:(NSNotification *)notification {
    [self.webView setUIDelegate:self];
    [self.webView setResourceLoadDelegate:self];
    [self.webView setFrameLoadDelegate:self];
}

-(void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:message]];
    [self.webView loadRequest:request];
}

@end
4

1 回答 1

0

检查您是否在 Target 的 General Settings 中链接了 WebKit.framework

  1. 在项目浏览器中单击项目(第一项)
  2. 转到“常规”-选项卡
  3. “链接的框架和库”下,单击加号图标。
  4. 搜索WebKit.framework
  5. 选择它并点击“添加”。
  6. 繁荣!我们完成了!

也不要忘记 在你的头文件中导入WebKit/WebKit.h 。

链接的框架和库

我希望我能帮助你。

于 2014-03-22T20:31:55.737 回答