Objective c WKWebView在Safari中打开银行目标链接

Objective c WKWebView在Safari中打开银行目标链接,objective-c,xcode,macos,safari,wkwebview,Objective C,Xcode,Macos,Safari,Wkwebview,我是新来的,所以请容忍我。我将一个youtube视频嵌入到WKWebView中,在Objective-C的macOS上播放得很好。起初,视频上的标准youtube链接(频道、推荐视频等)都无法加载。我想这是因为youtube使用了空白的目标链接。下面的代码修复了它,因此所有视频链接现在都将在WKWebView中打开 - (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfig

我是新来的,所以请容忍我。我将一个youtube视频嵌入到WKWebView中,在Objective-C的macOS上播放得很好。起初,视频上的标准youtube链接(频道、推荐视频等)都无法加载。我想这是因为youtube使用了空白的目标链接。下面的代码修复了它,因此所有视频链接现在都将在WKWebView中打开

- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
    NSLog(@"createWebViewWithConfiguration %@ %@", navigationAction, windowFeatures);
    if (!navigationAction.targetFrame.isMainFrame) {
        [(WKWebView *)_webView loadRequest:navigationAction.request];
    }
    return nil;
}
但是,我希望这些链接在macOS浏览器中打开,而不是在WKWebview中打开。iOS上有很多swift示例,但似乎无法从safari中的WKWebView获取打开的链接

我试过:

if (!navigationAction.targetFrame.isMainFrame) {
     [[NSApplication sharedApplication] openURL:[navigationAction.request URL]];
}

但在macOS上不起作用

不是100%确定,但我看到这在网上流传,用于在Mac上打开URL。试试看

[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://stackoverflow.com"]];

这就是最终对我有用的东西。似乎在Safari中打开任何url(包括YouTube中使用的javascript类型的弹出窗口),而不是在WKWebView中打开它们(或者根本不打开它们)


这回答了你的问题吗?这无疑让我走上了正确的方向。解决方案是在NS应用程序上使用NSWorkspace,但不使用URLWithString。谢谢你给我指出了正确的方向。
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
    NSLog(@"createWebViewWithConfiguration %@ %@", navigationAction, windowFeatures);
    if (!navigationAction.targetFrame.isMainFrame) {
       [[NSWorkspace sharedWorkspace] openURL:[navigationAction.request URL]];
    }
    return nil;
}