swift - WKWebview 在 macOS 上的默认浏览器中打开目标 =“_blank”链接
问题描述
我正在尝试使用 Xcode 的 Swift 代码在 macOS 上的默认浏览器中打开 WKWebview 打开外部链接 (target=_blank)。此代码仅用于下载 zip 或 nzb 链接文件,不起作用:
试图
func webView(webView: WebView!, decidePolicyForNavigationAction actionInformation: [NSObject : AnyObject]!, request: NSURLRequest!, frame: WebFrame!, decisionListener listener: WebPolicyDecisionListener!) {
let url = request.URL!.absoluteString
if url.hasSuffix(".zip") || url.hasSuffix(".nzb") {
listener.ignore()
NSWorkspace.sharedWorkspace().openURL(request.URL!)
} else {
listener.use()
}
}
该代码不适用于 macosx 10.14 和 webview 上的 Webview App,并且 WebPolicyDecisionListener 已在 10.14 中被弃用。
我希望 WKWebview 使用 Swift 打开外部链接 (target=_blank)。
解决方案
例如,您需要分配webView.uiDelegate = ...
to 和WKUIDelegate
then 句柄createWebViewWith:for:windowFeatures:
的实例;
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
if let url = navigationAction.request.url, navigationAction.targetFrame == nil {
let shared = UIApplication.shared
if shared.canOpenURL(url) {
shared.open(url, options: [UIApplication.OpenExternalURLOptionsKey: Any](), completionHandler: nil)
}
}
return nil;
}
推荐阅读
- elasticsearch - 弹性搜索基于嵌套字段值应用提升
- html - 使用 CSS 对齐时间轴上的按钮时出现问题
- python - sklearn StackingClassifier 和样本权重
- python - 在 Local Outlier Factor 中定义 Minpts 参数
- amazon-web-services - 当我尝试更改它时,EC2 实例错误告诉我附加了多个 IAM 角色...?
- python - 根据样式过滤 Pandas DataFrame
- java - 如何在 Heroku 中使用外部库运行 Java/Maven 应用程序?
- c++ - 如何来回移动演员 虚幻引擎
- html - 隐藏多个 div 的跨度
- database - 代码有助于防止在 wix 数据库 csv 文件上传中重复记录