欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS开发中使用UIWebView 屏蔽 alert警告框

程序员文章站 2024-02-16 10:01:16
 如果是网页内容里面的alert,我们可以等网页加载完毕,也就是在webviewdidfinishload中执行下面的js代码,就可以屏蔽alert了...

 如果是网页内容里面的alert,我们可以等网页加载完毕,也就是在webviewdidfinishload中执行下面的js代码,就可以屏蔽alert了

[mywebview stringbyevaluatingjavascriptfromstring:@"window.alert=null;"];

但上面的方法对于网页onload事件里面的alert就不起作用了

解决方法就是给uiwebview添加一个类别:

给工程添加javascriptalert.h

@interface uiwebview (javascriptalert) 
- (void)webview:(uiwebview *)sender runjavascriptalertpanelwithmessage:(nsstring *)message initiatedbyframe:(webframe *)frame;
- (bool)webview:(uiwebview *)sender runjavascriptconfirmpanelwithmessage:(nsstring *)message initiatedbyframe:(webframe *)frame;
@end

给工程添加javascriptalert.m文件

@implementation uiwebview (javascriptalert)
- (void)webview:(uiwebview *)sender runjavascriptalertpanelwithmessage:(nsstring *)message initiatedbyframe:(webframe *)frame {
/*
uialertview* dialogue = [[uialertview alloc] initwithtitle:nil message:message delegate:nil cancelbuttontitle:@"好" otherbuttontitles:nil];
[dialogue show];
[dialogue autorelease];
*/
}
- (bool)webview:(uiwebview *)sender runjavascriptconfirmpanelwithmessage:(nsstring *)message initiatedbyframe:(webframe *)frame{
return no;
}
@end

其实runjavascriptalertpanelwithmessage和runjavascriptconfirmpanelwithmessage是webuidelegate的成员函数,详情可以查阅webuidelegate的帮助文档。

以上所述是小编给大家介绍的ios开发中使用uiwebview 屏蔽 alert警告框,希望对大家有所帮助