iOS 使用UIWebview 弹窗后崩溃

2019-10-12  本文已影响0人  今天星期

无意中发现项目登录页(一个web页,基本没人维护)显示弹窗,点击确定按钮,导致项目crash。

查看控制台 只有如下一行信息

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',

继续添加断点 可以得到这样的信息

WX20191012-144242@2x.png

可以看到第一行提示存储了一个nil 的对象,导致系统直接崩掉。

继续往下看,可以看到键盘和响应者。

所以解决办法是当点击弹窗按钮,让键盘消失即可

方法一:

创建UIWebview类别(JavaScriptAlert)添加方法和alert代理


-(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;

在.m中 实现上述方法 可自定义弹窗 ps:js弹窗标题是域名

UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"你想到更改的标题"message:messagedelegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];

在alert代理方法中将键盘消失

方法二:

使用WKWebview 代替UIWebview

上一篇下一篇

猜你喜欢

热点阅读