正在阻止UIWebView警报
Blocking UIWebView alerts
我有一个应用程序,可以从各种域打开网页。其中一些域嵌入了显示You're the 1 millionth visitor to this website. You won >>nothing<<"
等警报的脚本。
我决定劫持window.alert
方法调用,不采取任何措施,这样上述网站就不会显示恶意警报。
我屏蔽了- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
和- (void)webViewDidFinishLoad:(UIWebView *)webView
中的警报,以防止网站在页面加载完成之前显示警报。
一些崩溃报告表明,从shouldStartLoadWithRequest
调用webView stringByEvaluatingJavaScriptFromString:...
会导致应用程序崩溃。不总是,只是有时。知道为什么会这样吗?
有没有一种方法可以在不进行手动劫持的情况下从一开始就防止警报显示?我很想使用SFSafariViewController,但不幸的是,对于各种限制,这不是一个选项。
为什么不使用WKWebView?WKWebView挂接JS的警报,默认情况下不执行任何操作。
FYI:
如果您想在调用JS的警报时显示警报,请实现WKUIDelegate的
webView(webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: () -> Void)
并显示自己的对话。
相关文章:
- 正在阻止UIWebView警报
- 当鼠标悬停在文本中的单词上时显示警报
- 为什么JavaScript在for循环为3时向所有4发出警报
- Html引导程序警报自动关闭困难
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 为什么不显示警报窗口
- 刷新页面后会出现警报
- Javascript 将变量分配给警报
- 如何访问UIWebView'的子窗口上下文
- 当var==0时,我如何显示一个警报
- 将JavaScript弹出菜单转换为警报框
- 警报框中的数据通过linq
- 为什么此警报框不't被触发了?在这里追鬼
- 如果连接类型为none,则Javascript Function Only警报
- 从Javascript警报中防止换行
- 在iOS 4.3中未调用UIWebView shouldStartLoadWithRequest
- 在ios7的UIWebView中禁用js警报
- 将警报从UIWebView传递到iOS应用程序
- 为什么我不能在UIWebView中关闭或驳回Javascript警报?
- 如何处理警报单击从UIWebview生成的警报的位置