如何捕捉js警报?

时间:2018-07-13 17:48:38

标签: javascript ios swift uiwebview alert

我想使用UIWebView我知道它已经贬值了)在ViewController上显示html页面。

现在,我想使用alert通过javascript触发本机alert()-call (对话框,默认警报,按钮警报...)的任何情况。

发生的问题是警报的标题获得了默认的页面名称,例如我的情况"index.html"。我如何自定义它?


img

我非常确定我需要利用webView()调用来捕获警报,并使用UIAlertController创建本地警报。我对吗?而且-如何在 Swift 中捕获并创建警报?

我发现与WKWebView有关的内容是这样的:

func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
  let alertController = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
  alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in
    completionHandler()
  }))
  self.present(alertController, animated: true, completion: nil)
}

func webView(_ webView: WKWebView, runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (Bool) -> Void) {

  let alertController = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
   alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in
     completionHandler(true)
   }))
   alertController.addAction(UIAlertAction(title: "Cancel", style: .default, handler: { (action) in
     completionHandler(false)
   }))
   self.present(alertController, animated: true, completion: nil)
}

0 个答案:

没有答案