alert ios 消失不了
2012-12-18 23:12:15 jinglijun 阅读数 15015

在iOS app 中经常会嵌套html 代码, 然后  js 的alert 的title 怎么修改呢,不修改的话很丑陋,用户无法接受。如下:


 但是现在有了好的办法就是用 iOS native 的uiwebview 的扩展方法来监听 js的alert 然后自定义 alert 的title ,如下:



这样就可以自定义, 也比较好看了。

方法是 在 你加在webview 的 m 方法中加入:

@interface UIWebView (JavaScriptAlert)

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

@end

@implementation UIWebView (JavaScriptAlert)

- (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
    
    
    UIAlertView* customAlert = [[UIAlertView alloc] initWithTitle:@"我是JS Alert"
                                                          message:message
                                                         delegate:nil
                                                cancelButtonTitle:@"确定"
                                                otherButtonTitles:nil];
    
    [customAlert show];
    [customAlert release];
    
}
@end

这样就ok了! 哈哈!

html 代码 :

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>Webview document</title>
    <script type="text/javascript">
        function change_header()
        {
            alert("不错的一天");
        }
     </script>
</head>

<body style="background-color:transparent; color:white;">
    <h4>UIWebView HTML document</h4>
    <button onclick="change_header()">按钮</button>
</body>

</html>



2013-03-14 01:35:03 cuiweijie3 阅读数 1343

转自 http://blog.csdn.net/jinglijun/article/details/8316746

在iOS app 中经常会嵌套html 代码, 然后  js 的alert 的title 怎么修改呢,不修改的话很丑陋,用户无法接受。如下:


 但是现在有了好的办法就是用 iOS native 的uiwebview 的扩展方法来监听 js的alert 然后自定义 alert 的title ,如下:



这样就可以自定义, 也比较好看了。

方法是 在 你加在webview 的 m 方法中加入:

  1. @interface UIWebView (JavaScriptAlert)  
  2.   
  3. - (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;  
  4.   
  5. @end  
  6.   
  7. @implementation UIWebView (JavaScriptAlert)  
  8.   
  9. - (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {  
  10.       
  11.       
  12.     UIAlertView* customAlert = [[UIAlertView alloc] initWithTitle:@"我是JS Alert"  
  13.                                                           message:message  
  14.                                                          delegate:nil  
  15.                                                 cancelButtonTitle:@"确定"  
  16.                                                 otherButtonTitles:nil];  
  17.       
  18.     [customAlert show];  
  19.     [customAlert release];  
  20.       
  21. }  
  22. @end  

这样就ok了! 哈哈!

html 代码 :

  1. <html>  
  2. <head>  
  3.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  4.   <title>Webview document</title>  
  5.     <script type="text/javascript">  
  6.         function change_header()  
  7.         {  
  8.             alert("不错的一天");  
  9.         }  
  10.      </script>  
  11. </head>  
  12.   
  13. <body style="background-color:transparent; color:white;">  
  14.     <h4>UIWebView HTML document</h4>  
  15.     <button onclick="change_header()">按钮</button>  
  16. </body>  
  17.   
  18. </html> 

2014-01-22 15:29:56 hmxiao_1983 阅读数 642

在iOS app 中经常会嵌套html 代码, 然后  js 的alert 的title 怎么修改呢,不修改的话很丑陋,用户无法接受。如下:


 但是现在有了好的办法就是用 iOS native 的uiwebview 的扩展方法来监听 js的alert 然后自定义 alert 的title ,如下:



这样就可以自定义, 也比较好看了。

方法是 在 你加在webview 的 m 方法中加入:

[html] view plaincopy
  1. @interface UIWebView (JavaScriptAlert)  
  2.   
  3. - (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;  
  4.   
  5. @end  
  6.   
  7. @implementation UIWebView (JavaScriptAlert)  
  8.   
  9. - (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {  
  10.       
  11.       
  12.     UIAlertView* customAlert = [[UIAlertView alloc] initWithTitle:@"我是JS Alert"  
  13.                                                           message:message  
  14.                                                          delegate:nil  
  15.                                                 cancelButtonTitle:@"确定"  
  16.                                                 otherButtonTitles:nil];  
  17.       
  18.     [customAlert show];  
  19.     [customAlert release];  
  20.       
  21. }  
  22. @end  

这样就ok了! 哈哈!

html 代码 :

[html] view plaincopy
  1. <html>  
  2. <head>  
  3.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  4.   <title>Webview document</title>  
  5.     <script type="text/javascript">  
  6.         function change_header()  
  7.         {  
  8.             alert("不错的一天");  
  9.         }  
  10.      </script>  
  11. </head>  
  12.   
  13. <body style="background-color:transparent; color:white;">  
  14.     <h4>UIWebView HTML document</h4>  
  15.     <button onclick="change_header()">按钮</button>  
  16. </body>  
  17.   
  18. </html>  
2016-05-19 09:51:53 guoshengboy 阅读数 972

NSString* methodNameStr=[NSString stringWithFormat:@"device_callback(%d,\"%@\")",[@"6001" isEqualToString:@"6001"]?-1:-2,[@"6001" isEqualToString:@"6001"]?@"支付取消":@"支付失败"];

如果在通知方法里直接调用

 [weakSelf.webView stringByEvaluatingJavaScriptFromString:methodNameStr];

会弹出alert  但是点击不了  


所以不能这样写 

 NSString *jsMyAlert =[NSString stringWithFormat:@"setTimeout(function(){%@;},1)",methodNameStr];

 [weakSelf.webView stringByEvaluatingJavaScriptFromString:jsMyAlert];


2016-07-07 09:39:00 weixin_34381687 阅读数 63

NSString* methodNameStr=[NSString stringWithFormat:@"device_callback(%d,\"%@\")",[@"6001" isEqualToString:@"6001"]?-1:-2,[@"6001" isEqualToString:@"6001"]?@"支付取消":@"支付失败"];

如果在通知方法里直接调用

[weakSelf.webView stringByEvaluatingJavaScriptFromString:methodNameStr];

会弹出alert  但是点击不了

所以不能这样写

NSString *jsMyAlert =[NSString stringWithFormat:@"setTimeout(function(){%@;},1)",methodNameStr];

[weakSelf.webView stringByEvaluatingJavaScriptFromString:jsMyAlert];

没有更多推荐了,返回首页