该问题是否有任何修复/解决方法?
要点:
在iOS5设备/模拟器上,使用UIWebView的应用程序在打开某些附件文件后不会显示Gmail,例如.pdf,.txt或.xml。我用UIWebView构建了一些简单的应用程序,它们有searchBar,goBack按钮等等。当它们是为iOS 4.3构建时,它们在iPhone 4.3设备/模拟器上完美运行,但它们不适用于5.0。为iOS5构建的项目也存在同样的问题。
重现步骤:
预期结果:
您可以返回上一封电子邮件(当您按下goBack按钮时),或者转到Gmail页面顶部(当您输入Gmail网址时)。
实际结果:
UIWebView只显示一个空白,永远不会让您看到任何Gmail页面。
回归:
会发生: - iOS部署目标4.3,在iOS 5.0设备/模拟器上运行 - iOS部署目标5.0,在iOS 5.0设备/模拟器上运行
不会发生: - iOS部署目标4.3,在iOS 4.3设备/模拟器上运行
由于
答案 0 :(得分:0)
我有同样的问题,但无法修复它。我建议你解决方法之一。 如果您的UIWebView转到“mail-attachment.googleusercontent.com”,则返回 行动是错误的。因此,当检测到URL时,您最好创建另一个视图并在其上加载附件。第二个具有GO后退按钮但是当它被按下时你丢弃第二个视图然后通过IBAction方法返回到第一个视图。它适用于iOS4和iOS5。
我的示例代码如下。
-(BOOL) firstView:(UIWebView *)view
shouldStartLoadWithRequest:(NSURLRequest *)req
navigationType:(UIWebViewNavigationType)nType{
NSString *strurl=[[[req URL] standardizedURL] absoluteString];
NSRange range=[strurl rangeOfString: @"mail-attachment" options:NSCaseInsensitiveSearch];
if (range.location!=NSNotFound){
Your2ndViewController *attView = [[Your2ndViewController alloc] initWithNibName:@"YourNibNameofAnothor" bundle:nil];
if(attView==nil){
return NO;
}
attView.wvc=self;//mark the first on the second to return the first one
[attView loadURLWithString:strurl];
[self.view addSubview:attView.view ];
[UIView commitAnimations];
[attView loadURLWithString:strurl];
return NO;//Not Load on the first view
}
return YES;//Load on the first view
}
您的第二个视图也是UIWebView,它有一个返回按钮,它的处理程序正在跟随
- (IBAction) returnParent:(id)sender
{
[self.view removeFromSuperview];//return to the first view
[UIView commitAnimations];
}