ios UIWebView自定義Alert風格的彈框

以前開發過一個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;
    }
相關文章
相關標籤/搜索