如果是网页内容里面的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警告框,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
解决Android10读取不到/sdcard/、/storage/emulated/0/文件的问题
Codeforces Round #649 (Div. 2)-B. Most socially-distanced subsequence(思维)
IOS开发教程第一季之UI进阶day2合并IOS学习013--App启动过程、多控制器管理
网友评论