博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WKWebView不显示JS的alert弹窗的解决办法
阅读量:6592 次
发布时间:2019-06-24

本文共 2422 字,大约阅读时间需要 8 分钟。

首先要设置WKWebView的代理

self.webView.UIDelegate = self;复制代码

实现以下三个代理方法即可

#pragma mark -- WKUIDelegate// 显示一个按钮。点击后调用completionHandler回调- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler{        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:message message:nil preferredStyle:UIAlertControllerStyleAlert];    [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {        completionHandler();    }]];    [self presentViewController:alertController animated:YES completion:nil];}// 显示两个按钮,通过completionHandler回调判断用户点击的确定还是取消按钮- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler{        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:message message:nil preferredStyle:UIAlertControllerStyleAlert];    [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {                completionHandler(YES);    }]];    [alertController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {                completionHandler(NO);    }]];    [self presentViewController:alertController animated:YES completion:nil];    }// 显示一个带有输入框和一个确定按钮的,通过completionHandler回调用户输入的内容- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * _Nullable))completionHandler{        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:nil preferredStyle:UIAlertControllerStyleAlert];    [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {            }];    [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {                completionHandler(alertController.textFields.lastObject.text);    }]];    [self presentViewController:alertController animated:YES completion:nil];}复制代码

转载地址:http://vhkio.baihongyu.com/

你可能感兴趣的文章
架构模式mv*,flux
查看>>
180706-BigDecimal除法的精度问题
查看>>
你真的搞懂了负数取模吗?
查看>>
新增16条设计规约!阿里巴巴Java开发手册(详尽版)开放下载!
查看>>
HTTP协议入门
查看>>
Python学习之路17-Django入门
查看>>
详解基于vue,vue-router, vuex以及addRoutes进行权限控制
查看>>
bootstarp table 采坑专辑
查看>>
Rancher 2.0正式发布:简化、加速企业Kubernetes落地
查看>>
ES6 系列之模板字符串
查看>>
网络安全—xss
查看>>
MySQL Optimization 优化原理
查看>>
【译】Quora 问答:为什么老师说我不适合编程?
查看>>
SQL Server 学习 SQL 语句 ( 三 )
查看>>
Node.js 静态服务器新知
查看>>
AlwaysOn 进阶 Level 1:What is "SQL Server AlwaysOn"?
查看>>
webpack搭建多页面系统(三) 理解webpack.config.js的四个核心概念
查看>>
JavaScript作用域
查看>>
【295天】跃迁之路——程序员高效学习方法论探索系列(实验阶段53-2017.11.27)...
查看>>
Spring之面向切面
查看>>