以前開發過一個App,由於公司以前寫好了網頁版的內容和安卓版本的App,我進去後老闆要求我ios直接用網頁的內容,而不須要本身再搭建框架。我一聽,偷笑了,這不就是一個UIWebView嗎?簡單!ios
可是,TMD(O^O)!事情並無這麼簡單,要求我要與網頁交互,首先就遇到了一個自定義網頁彈框的問題,思想:找到網頁彈框進行攔截,替換成本身寫的彈框。web
1、建立UIWebView的類別UIWebView+JavaScriptAlert框架
一、在.h中添加方法spa
-(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;
二、在.m中建立彈框並更改標題代理
@implementation UIWebView (JavaScriptAlert) -(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame { UIAlertView * customAlert = [[UIAlertView alloc]initWithTitle:@"你想到更改的標題" message:message delegate:nil cancelButtonTitle:@"肯定" otherButtonTitles:nil, nil]; [customAlert show]; } @end
2、在UIWebView的代理方法code
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationTypeblog
中攔截ip
if ([request.mainDocumentURL.relativePath isEqualToString:@"/alert"]) { [webView webView:webView runJavaScriptAlertPanelWithMessage:@"123" initiatedByFrame:nil]; return NO; }