我想使用UIWebView
(我知道它已经贬值了)在ViewController上显示html页面。
现在,我想使用alert
通过javascript触发本机alert()-call
(对话框,默认警报,按钮警报...)的任何情况。
发生的问题是警报的标题获得了默认的页面名称,例如我的情况"index.html"
。我如何自定义它?
我非常确定我需要利用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)
}