Cocoa - 调用createWebViewWithRequest时,Webview请求为nil

and*_*ore 2 macos cocoa webkit webview

我在Cocoa中遇到了一个很大的问题.我的WebView加载了一个javascript,它将在此WebView中打开一个新窗口(未在浏览器中打开).

我打电话

[myWebView setUIDelegate: self]
Run Code Online (Sandbox Code Playgroud)

调用createWebViewWithRequest:withRequest:

在createWebViewWithRequest中,我加载了请求,但请求是nil.我不知道为什么,我被困在这里.

- (WebView*)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
    [[sender mainFrame]loadRequest:request];
    return sender;
}
Run Code Online (Sandbox Code Playgroud)

你有什么想法?

小智 5

在这里传递一个零请求是WebKit故意改变.

也许你可以改变你的JavaScript使用...

<a target=_blank href="http://www.example.com/">
Run Code Online (Sandbox Code Playgroud)

......而不是window.open()

如果你这样做,你可以使用

-webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:

的方法WebPolicyDelegate来获取请求.