0

我在应用商店中有一个正在运行的应用程序,其中包含 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 中工作?

任何帮助都会得到帮助...

4

1 回答 1

1

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

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

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

抑制增量渲染

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

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

附加提示:要在 iOS6 上调试 javascript 错误,一个新功能使它变得非常简单:

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

然后,您将能够使用 Mac 中强大的 Web Inspector 调试 iPhone 中显示的网页,并可以查看 javascript 控制台、DOM 树等。

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

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

于 2013-02-18T11:57:05.877 回答