不要在WKWebView中显示ImagePicker iOS
创始人
2025-01-11 04:37:14
0

要在WKWebView中禁止显示ImagePicker,可以通过设置WKWebView的UIDelegate来实现。在UIDelegate中的方法webView(_:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)中,我们可以检测到当网页中调用了JavaScript的alert方法时的回调。

通过在这个回调方法中判断alert的message,我们可以判断是否是调用了ImagePicker,如果是,则可以忽略该调用,从而禁止在WKWebView中显示ImagePicker。

以下是一个示例代码:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate {
    var webView: WKWebView!

    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        view = webView
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        if let url = URL(string: "https://example.com") {
            let request = URLRequest(url: url)
            webView.load(request)
        }
    }

    // WKUIDelegate method
    func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
        if message.contains("ImagePicker") {
            // Ignore the ImagePicker alert
            completionHandler()
        } else {
            // Handle other alerts normally
            let alertController = UIAlertController(title: nil, message: message, preferredStyle: .alert)
            alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in
                completionHandler()
            }))
            present(alertController, animated: true, completion: nil)
        }
    }
}

在上面的示例代码中,我们在webView(_:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)方法中判断了alert的message是否包含"ImagePicker",如果是,则直接调用completionHandler()来忽略该alert。否则,我们会根据message创建一个UIAlertController来展示alert,并在用户点击OK按钮后再调用completionHandler()

通过这种方式,我们可以禁止在WKWebView中显示ImagePicker。

相关内容

热门资讯

wepoke辅助!德州智能辅助... wepoke辅助!德州智能辅助,微扑克系统机制,规律教程(有挂辅助挂)1、wepoke辅助ai辅助优...
透视讲解(wepOke)透明挂... 透视讲解(wepOke)透明挂辅助app(wepoke真的有挂)一贯存在有挂(详细透视力荐教程);w...
德扑之星有作弊!weopke真... 德扑之星有作弊!weopke真的吗,红龙扑克是正规的,wepoke教程(有挂规律)1、许多玩家不知道...
透视游戏(wepOkE)外挂透... 透视游戏(wepOkE)外挂透明挂辅助app(wepoke辅助德之星)切实有挂(详细透视新2025版...
智星德州菠萝!wepoke透明... 智星德州菠萝!wepoke透明黑科技,微扑克ai软件,wepoke教程(有挂攻略)1、许多玩家不知道...
透视真的(wepoker)透视... 透视真的(wepoker)透视辅助app(wepoke真的有挂)一直真的有挂(详细透视德州教程);1...
德州免费辅助神器app!aap... 德州免费辅助神器app!aapoker到底有挂吗,wpk透明挂,2025新版教程(有挂辅助挂)1、德...
透视好友房(WEPoke)外挂... 透视好友房(WEPoke)外挂透明挂辅助代打(wepoke辅助)确实真的有挂(详细透视曝光教程)1、...
德扑ai智能!wepower有... 德扑ai智能!wepower有外挂,wpk可以玩胜率高,必备教程(有挂详情)1、许多玩家不知道wep...
透视黑科技(WepOke)透视... 透视黑科技(WepOke)透视辅助代打(wepoke黑科技)确实是有挂(详细透视普及教程)1、玩家可...