`

swift -> WKWebview -> alert / confirm/ prompt

 
阅读更多

 

 

    //alert
    func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
        let alertController = UIAlertController(title: nil, message: message, preferredStyle: .alert)
        alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
            completionHandler()
        }))
        present(alertController, animated: true, completion: nil)
        print("dsf")
    }
    //confirm
    func webView(_ webView: WKWebView, runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (Bool) -> Void) {
        let alertController = UIAlertController(title: nil, message: message, preferredStyle: .alert)
        alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
            completionHandler(true)
        }))
        alertController.addAction(UIAlertAction(title: "Cancel", style: .default, handler: { (action) in
            completionHandler(false)
        }))
        present(alertController, animated: true, completion: nil)
    }
    //弹出输入框 js, onclick = prompt('xxxx','');
    func webView(_ webView: WKWebView, runJavaScriptTextInputPanelWithPrompt prompt: String, defaultText: String?, initiatedByFrame frame: WKFrameInfo,
                 completionHandler: @escaping (String?) -> Void) {
        let alertController = UIAlertController(title: nil, message: prompt, preferredStyle: .alert)
        alertController.addTextField { (textField) in
            textField.text = defaultText
        }
        alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
            if let text = alertController.textFields?.first?.text {
                completionHandler(text)
            } else {
                completionHandler(defaultText)
            }
        }))
        alertController.addAction(UIAlertAction(title: "Cancel", style: .default, handler: { (action) in
            completionHandler(nil)
        }))
        present(alertController, animated: true, completion: nil)
    }
    //\\=======wkWebView alert / conifrm=============

 

 

分享到:
评论

相关推荐

    sweetalert2:JavaScript弹出框的漂亮,响应Swift,高度可定制和可访问(WAI-ARIA)的替代品。 零依赖

    script src =" sweetalert2/dist/sweetalert2.all.min.js " > </ script > <!-- Include a polyfill for ES6 Promises (optional) for IE11 --> < script src =" ...

    IOS应用源码——webView控制器的一些常用控制.rar

    6. **阻止弹窗**: 对于一些不希望用户看到的弹窗,例如JavaScript的alert、confirm或prompt,我们可以在导航代理方法中进行拦截。 7. **自定义加载进度**: 可以通过监听WebView的加载进度来创建自定义的加载条。...

    enhanced-alert:一个 jquery ui 插件

    Enhanced-alert一个查询 ui 插件 这个插件用新的替换浏览器对话框(警报、提示、确认)。 用法 警报 $.ea.alert(message[,title[,icon]]) 例子: $.ea.alert("I'm new",'Warning'); 确认 $.ea....

    如何使用信息提示控件

    `alert()`用于显示一条消息,`confirm()`用于显示带有确认按钮的消息,而`prompt()`则用于获取用户输入。 ```javascript alert("这是一个信息提示"); var result = confirm("你确定要继续吗?"); var input = prompt...

    各种应用弹框

    - **JavaScript**:在Web开发中,常使用`alert()`, `prompt()`, `confirm()`函数创建弹框。 - **Swift/Obj-C**:在iOS开发中,可使用`UIAlertController`类创建弹框。 - **Java**:在Android中,可以利用`...

    给程序增加提示对话框

    在Web开发中,JavaScript的`alert()`、`confirm()`和`prompt()`函数可以创建不同类型的对话框。例如: ```javascript alert("这是一个信息提示"); var result = confirm("你确定要执行此操作吗?"); var name = ...

    弹出消息框的不同位置效果

    在JavaScript中,虽然原生的`alert`、`confirm`和`prompt`函数没有位置控制选项,但可以使用第三方库如jQuery UI或SweetAlert2来实现更丰富的自定义功能。 对于Android开发,可以使用`AlertDialog`或`Toast`类来...

    提示框模块2.6.rar

    - **JavaScript** 中,可以使用`alert()`, `confirm()`, 和 `prompt()` 函数创建基本的提示框。 - **Java** 中,JavaFX 或 Swing 框架提供了`Alert`类和`JOptionPane`类来创建提示框。 - **Python** 的Tkinter库中,...

    弹出对话框

    在JavaScript中,可以使用`alert()`, `prompt()`, 和 `confirm()`函数。在Android开发中,我们会使用`AlertDialog`类;在iOS的Swift或Objective-C中,可以利用`UIAlertController`。 标签“源码”暗示我们将讨论...

    dialogs:Meteor 的跨平台告警、确认和提示

    Dialogs.alert(message, [callback], [title], [buttonText]) 确认 使用确认框提示用户。 Dialogs.confirm(message, [callback], [title], [buttonText]) Swift的 用文本输入框提示用户。 `...

    PopUp提示框

    例如,在JavaScript中,可以使用`alert()`、`prompt()`和`confirm()`函数来创建基本的PopUp;在Android开发中,可以使用`AlertDialog`类;在iOS的Swift中,可以利用`UIAlertController`。对于更复杂的需求,可以...

Global site tag (gtag.js) - Google Analytics