您的位置:首页 > 移动开发 > IOS开发

iOS开发 网页中的alert/contirm 点击方法未执行

2017-04-12 20:19 162 查看
问题:

    项目中“积分模块”用的是大麦城网页,在交互过程中网页中的confirm(ios对应alerview)点击未执行js代码。

解决:

    最终找到这个代码片段,新建Category类方法,将一下代码写入。

扩展:

    可修改alert、confirm风格,也常见于网页中的提示框未拉起。

@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)  

  

/**
alert */

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

{  

    UIAlertView* customAlert = [[UIAlertView alloc] initWithTitle:@"助手提示" message:message delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];  

    [customAlert show];  

}  

static BOOL diagStat = NO;  

static NSInteger bIdx = -1;  

/** contirm */

- (BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame 

{  

    UIAlertView *confirmDiag = [[UIAlertView alloc] initWithTitle:@"助手提示"  

                                                          message:message  

                                                         delegate:self  

                                                cancelButtonTitle:@"取消"  

                                                otherButtonTitles:@"确定", nil nil];  

      

    [confirmDiag show];  

    bIdx = -1;  

      

    while (bIdx==-1) {  

        //[NSThread sleepForTimeInterval:0.2];  

        [[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1f]];  

    }  

    if (bIdx == 0){//取消;  

        diagStat = NO;  

    }else if (bIdx == 1) {//确定;  

        diagStat = YES;  

    }  

    return diagStat;  

}  

  

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{  

    bIdx = buttonIndex;  

}  

  

@end  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: