【发布时间】:2020-11-27 05:22:26
【问题描述】:
我很新,所以请耐心等待。我有一个嵌入在 WKWebView 中的 youtube 视频,在 Objective-C 的 macOS 上可以正常播放。起初,视频上的任何标准 youtube 链接(频道、推荐视频等)都不会加载。我认为这是因为 youtube 使用 _blank 目标链接。以下代码修复了它,因此现在任何视频链接都将在 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
【问题讨论】:
-
这能回答你的问题吗? Open url in safari through cocoa app
标签: objective-c xcode macos safari wkwebview