【问题标题】:UIWebView issue with iOS 6iOS 6 的 UIWebView 问题
【发布时间】:2013-02-14 14:17:26
【问题描述】:

我在应用商店中有一个正在运行的应用程序,其中包含 UIWebView。在 iOS 6.0 之前它工作得非常好。在 OS 6 中,一些超链接无法正常工作,但当我在 iPad 上的 iOS 中使用 safari 浏览器时,同样的事情可以正常工作。

我是否需要添加一些额外的委托方法才能使其正常工作? 目前我正在使用以下代码:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:kAuthenticationURL]];
[request setValue:[NSMutableURLRequest userAgentRequests] forHTTPHeaderField:@"User-Agent"];
[request setHTTPMethod:@"POST"];
[request setHTTPShouldHandleCookies:YES];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

NSData *postData = [[NSString stringWithFormat:@"username=%@&code=%@", username, password]
                             dataUsingEncoding:NSASCIIStringEncoding];
[request setHTTPBody:postData];

我使用过的代表:

1)

- (void)webViewDidStartLoad:(UIWebView *)webView

2)

- (void)webViewDidFinishLoad:(UIWebView *)webView

在这个方法中,我使用了以下方法来加载数据:

[self.webView stringByEvaluatingJavaScriptFromString:@"window.location.reload = function(){};"]; 

3)

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

我是否需要实现一些额外的东西才能让它在 iOS 6 中运行?

任何帮助都可以得到...

【问题讨论】:

    标签: ipad ios6 uiwebview


    【解决方案1】:

    也许您遇到与此处所述相同的问题:stringByEvaluatingJavaScriptFromString is not working in iOS 6 或此处iOS 6 - UIWebView loadHTMLString not working properly

    iOS 6 似乎以不同的方式加载和呈现页面,并且可能比 5 更严格

    您可以尝试抑制 iOS6 的增量渲染,如 here 所述

    抑制增量渲染

    A Boolean value indicating whether the web view suppresses content rendering 
    until it is fully loaded into memory.
    @property(nonatomic) BOOL suppressesIncrementalRendering
    

    您也可以尝试使用您的 mac 进行调试,如 here 所述:

    附加提示:调试 iOS6 上的 javascript 错误,这是一项新功能 很简单:

    • 进入 iPhone 中的“设置”应用程序,进入“Safari”设置并点击底部的“高级”,然后启用“WebKit 检查员”来自那里
    • 在屏幕上显示要调试的页面(即启动应用并转到包含 WebView 的屏幕以使其可见)
    • 通过 USB 数据线将 iPhone 插入 Mac
    • 在您的 Mac 上打开 Safari.app,进入“开发”菜单(1),选择带有您 iPhone 名称的菜单项,然后选择您的 子菜单中的应用程序。

    然后您就可以调试 iPhone 中显示的网页了 在 Mac 上使用强大的 Web Inspector,并且可以查看 javascript 控制台、DOM 树等

    (1) 如果您在 Mac 上的 Safari 中没有“开发”菜单,您可以在 Safari 的“高级”首选项选项卡中启用它 应用程序。

    有关远程调试的更多信息,请参阅here(一直向下滚动到“远程调试”)或here(WWDC 视频会话:“调试 iOS 上的 UIWebViews 和网站”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 2013-10-02
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多