首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过WebView从javascript到Cocoa应用程序接收alert()动作

要在WebView中从JavaScript到Cocoa应用程序接收alert()动作,您可以使用WKWebView的navigationDelegate。以下是一个简单的示例,说明如何实现这一点:

  1. 首先,确保您已经导入了WebKit框架:
代码语言:swift
复制
import WebKit
  1. 在您的ViewController中,创建一个WKWebView实例,并设置其navigationDelegate:
代码语言:swift
复制
class ViewController: UIViewController, WKNavigationDelegate {
    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.navigationDelegate = self
        view.addSubview(webView)
    }
}
  1. 然后,实现webView(_:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)委托方法,该方法将在JavaScript调用alert()时触发:
代码语言:swift
复制
func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
    let alertController = UIAlertController(title: "Alert", message: message, preferredStyle: .alert)
    alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
        completionHandler()
    }))

    present(alertController, animated: true, completion: nil)
}

现在,每当WebView中的JavaScript代码调用alert()时,都会弹出一个带有消息的警告框。当用户点击“OK”按钮时,completionHandler将被调用,并且JavaScript代码将继续执行。

请注意,这个示例仅适用于WKWebView,如果您使用的是UIWebView,您需要使用其他方法来实现类似的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券