比较难看,假如我们想把标题改为“提示消息”要怎么做呢?可以通过给UIWebview添加category的方式实现,代码如下:
//只要导入这个category,就可以修改将网页js弹出框标题为 “提示信息”了。
@interface UIWebView (JavaScriptAlert)
-(void) webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;
- (BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;
@end
@implementation UIWebView (JavaScriptAlert)
- (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame {
UIAlertView* customAlert = [[UIAlertViewalloc] initWithTitle:@"提示"message:message delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil];
[customAlertshow];
}
staticBOOL diagStat = NO;
staticNSInteger bIdx = -1;
- (BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame {
UIAlertView *confirmDiag = [[UIAlertViewalloc] initWithTitle:@"提示"
message:message
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"确定",nil];
[confirmDiagshow];
bIdx = -1;
while (bIdx==-1) {
//[NSThread sleepForTimeInterval:0.2];
[[NSRunLoopmainRunLoop] runUntilDate:[NSDatedateWithTimeIntervalSinceNow:0.1f]];
}
if (bIdx ==0){//取消;
diagStat =NO;
}
elseif (bIdx ==1) {//确定;
diagStat =YES;
}
returndiagStat;
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
bIdx = buttonIndex;
}