在UIWebView中禁用警报框

时间:2010-07-01 08:31:57

标签: iphone uitableview

我正在UIWebView中加载外部网页。加载网页时,会出现一个警告框(带有“确定”和“取消”按钮),其中包含有关网页的一些建议/信息。我想在我的iphone应用程序中的UIWebView组件中加载网页时阻止此警报框。如何在我的代码中实现?


感谢您的回复。我不负责外部网页(但我可以要求关注网页所有者根据以下要求进行更改)。要求是当我们在iPhone Safari浏览器中查看网页时,可以显示Alert Box(用于告诉我的iphone应用程序),而不是在我的iphone应用程序中使用相同网页的UIWebView中。我在iPhone Safari和使用UIWebView的iPhone应用程序中使用相同的网页URL。因此,当我们在iPHone Safari中查看网页时,要求显示警告框,当我们在iPhone应用程序中查看同一网页时(在UIWebView中),不显示警报框。希望我已经清楚地解释了我的要求。请为此提供任何解决方案。

4 个答案:

答案 0 :(得分:1)

使用stringByEvaluatingJavaScriptFromString:方法,您可以使用您提供的任何JavaScript更改页面上的任何内容,这样您就可以重载或替换警报功能以执行您想要的操作

答案 1 :(得分:0)

您是这个外部网页的“负责人”吗?如果是这种情况,你可以这样做:

UIWebView加载externalpage.html?noalert而不是externalpage.html。 然后在externalpage.html上,您可以检查此查询字符串变量是否存在,如果不存在,则仅显示alert()

if(!document.location.search || document.location.search.substring(1) != 'noalert') {
    alert('Boo!');
}

答案 2 :(得分:0)

答案 3 :(得分:0)

由于UIWebView将所有Javascript警报转换为本机UIAlertViews,因此在本机端阻止它是相当简单的。查看UIAlertView.h,只有一种公开方法可以显示一个方便的名为- (void)show;的警报。

@interface UIAlertView (Blocker)
@end

#import "UIAlertView+Blocker.h"

@implementation UIAlertView (Blocker)

- (void)show {
   return;
}
@end

您可以在此处找到答案:https://stackoverflow.com/a/21698251/2377378