ios UIWebView自定义Alert风格的弹框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios UIWebView自定义Alert风格的弹框相关的知识,希望对你有一定的参考价值。

之前开发过一个App,因为公司之前写好了网页版的内容和安卓版本的App,我进去后老板要求我ios直接用网页的内容,而不需要自己再搭建框架。我一听,偷笑了,这不就是一个UIWebView吗?简单!

  但是,TMD(O^O)!事情并没有这么简单,要求我要与网页交互,首先就遇到了一个自定义网页弹框的问题,思想:找到网页弹框进行拦截,替换成自己写的弹框。

一、创建UIWebView的类别UIWebView+javascriptAlert

  1、在.h中添加方法

-(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;

  2、在.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

二、在UIWebView的代理方法

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

中拦截

if ([request.mainDocumentURL.relativePath isEqualToString:@"/alert"]) {
        [webView webView:webView runJavaScriptAlertPanelWithMessage:@"123" initiatedByFrame:nil];
        
        return NO;
    }

 

以上是关于ios UIWebView自定义Alert风格的弹框的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义推送通知的iOS权限对话框的弹出时间

jquery控件-实现自定义样式的弹出窗口和确认框(转)

这是一个js的弹窗,我想要知道调用alert的位置,如何做。跪求大神赐招。

用vue2.x注册一个全局的弹窗alert组件

优化自定义Dialog的弹出速度

【iOS && Android】系统自带的几种常见弹窗Alert