当前位置: 首页 > 面试题库 >

在Safari中打开WKWebview target =“ _ blank”链接

孟修竹
2023-03-14
问题内容

我试图让使用斯威夫特和WKWebviews打开,有一个链接我的混合iOS应用程序target="_blank",或者如果URL中包含http://https://mailto:在移动Safari浏览器。

从这个答案我得到了这段代码。

func webView(webView: WKWebView!, createWebViewWithConfiguration     configuration: WKWebViewConfiguration!, forNavigationAction navigationAction:     WKNavigationAction!, windowFeatures: WKWindowFeatures!) -> WKWebView! {
    if navigationAction.targetFrame == nil {
        webView.loadRequest(navigationAction.request)
    }
    return nil
}

首先,那对我没有任何帮助。其次,我希望它在新窗口中打开。我发现该代码应该执行类似的操作…

if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") {
     UIApplication.sharedApplication().openURL(requestUrl)
}

如何将这两部分放在一起并使它们工作?我需要添加什么到ViewController声明中才能使其工作?


问题答案:

针对iOS 10 Swift 3的代码已更新:

override func loadView() {
    super.loadView()
    self.webView.navigationDelegate = self 
    self.webView.uiDelegate = self  //must have this
}

func webView(_ webView: WKWebView,
               createWebViewWith configuration: WKWebViewConfiguration,
               for navigationAction: WKNavigationAction,
               windowFeatures: WKWindowFeatures) -> WKWebView? {
    if navigationAction.targetFrame == nil, let url = navigationAction.request.url {
      if url.description.lowercased().range(of: "http://") != nil ||
        url.description.lowercased().range(of: "https://") != nil ||
        url.description.lowercased().range(of: "mailto:") != nil {
        UIApplication.shared.openURL(url)
      }
    }
  return nil
}


 类似资料:
  • 问题内容: 在我的应用程序中,我想在WKWebView中从 我的 域(例如:communionchapelefca.org)内打开链接,然后在Safari中打开来自 其他 域(例如:google.com)的链接。我希望以编程方式执行此操作。 我已经找到了一些关于Stack溢出的解决方案,但是它们似乎都是基于Obj-C的,我正在寻找使用Swift的解决方案。 ViewController.swift

  • 问题内容: 在iOS Web应用程序中调用时,该页面将在Web应用程序中打开,而不是在移动Safari中打开。 如何强制在移动浏览器中打开网页? 注意:不能使用直接链接。 问题答案: 这个有可能。使用iOS5独立网络应用程序进行了测试: HTML: JavaScript:

  • 本文向大家介绍javascript实现阻止iOS APP中的链接打开Safari浏览器,包括了javascript实现阻止iOS APP中的链接打开Safari浏览器的使用技巧和注意事项,需要的朋友参考一下 上次根据网上的教程给自己的网站弄了一个Web APP,但是给用户的感觉却十分糟糕。 问题说明: 怎么了?原来是打开WEB APP后在主页上随意打开连接,就会自作主张地打开Safari浏览器。原

  • 我尝试了各种方法来打开在.js文件中导入的.ftl文件中的新窗口中的链接,但都不成功。 下面是.js中的代码

  • 我目前正在尝试通过在Mac的Safari中启用“私人浏览”,但没有任何成功。以下代码显示了如何做同样的事情,但对于GoogleChrome(创建一个启用隐身模式的新窗口并打开一个新链接): 但不幸的是,Safari的工作方式与Chrome略有不同。每个Chrome窗口在“隐私浏览”(隐姓埋名)方面都是独立工作的。在Safari中,当您启用“私人浏览”时,整个应用程序将反映该选项,而不仅仅是一个特定

  • 我使用的方法是:https://stackoverflow.com/a/25796908/3437433 在桌面上,起源链接被替换。然后Safari会显示关于错误协议的错误页面。 在移动端,正确的页面是由原点链接打开的,但也会出现“url错误,无法打开页面”的提示。我可以关闭警报,可以单击“发送”按钮,但是页面打开,而不是提示登录whatsapp并重定向到聊天。 有没有人知道这是怎么回事,能不能修