首页
学习
活动
专区
工具
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,您需要使用其他方法来实现类似的功能。

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

相关·内容

  • 产品经理简单了解技术之Webview

    在产品经理实现App功能时,经常会和IOS开发、安卓开发、前端开发一起讨论问题,是因为应用功能的实现开发可以分为两种:客户端开发和HTML5 移动端开发(简称H5开发)。H5开发指通过HTML5 + CSS + JS来构建一个网页版的应用,而中间的媒介就是Webview。内嵌Webview在应用开发中占据着重要的地位,它能以较低的成本实现Android、IOS、Web的复用,并且可以突破苹果的热更新封锁。但是Webview带来便捷的同时,同时Web的性能和体验也存在缺陷。给人最大的体验就是打开速度比native慢。打开打开一个WebView页面,页面往往会慢慢加载很久,若干秒后才出现你所需要看到的页面。在目前的工作中,部分产品功能是前端开发基于Webview进行实现,因此进行一个简单的了解。

    02
    领券