WKWebView不会打开任何具有target="_blank"(又名)的链接.在它们的HTML<a href>标记中的"在新窗口中打开"属性.

推荐答案

我的解决方案是取消导航,再次使用loadRequest:加载请求.这将是类似于UIWebView的行为,它总是在当前框架中打开新窗口.

实现WKUIDelegate委托并将其设置为_webview.uiDelegate.然后实施:

- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
  if (!navigationAction.targetFrame.isMainFrame) {
    [webView loadRequest:navigationAction.request];
  }

  return nil;
}

Ios相关问答推荐

2024 Beacon应用程序- startMonitoring(适用于:地区)或

Flutter中抛出后期应用错误

Fastlane,iOS Provisioning Profile推送通知权限(通过示例)&

如何在iOS中以编程方式推送另一个页面?

在将Cocoapods更新到1.13.0之后,它抛出错误

在flatter_riverpod中,如果没有ref对象,我们如何访问提供程序?

iOS应用程序冻结在UICollectionView代码,但我没有';没有任何UICollectionViews

如何在Swift/Combine中从timer.publish属性传递两个参数到任意方法

Flutter动画放大图

为 ColorPicker 创建一个名为 Color 的计算变量的绑定

在 Swift 中映射 MySQL 数据

SwiftUI 切换语句

ARKit vs. ARCore vs. Vuforia vs. D'Fusion Mobile vs. Layar SDK

使用 AVAudioPlayer 播放声音

在 iOS 7 上更改标签栏色调 colored颜色

从 WKWebView 获取所有 cookie

判断密钥是否存在于 NSDictionary 中

UISegmentedControl 以编程方式更改段数

如何防止 iOS 设备上的显示屏变暗和关闭?

在 iOS 上没有显示数字键盘