2012-06-07 29 views
1

我对UIWebView有点问题。我在Interface Builder中创建了我的UIWebView,并创建了一个作为tasksWebView的插座。我还将它作为代理与我的View Controller联系起来。我想加载http://www.taskyo.com,但是当我尝试加载它时,我只是得到一个白页。它在Mobile Safari中运行良好,所以我很困惑问题在哪里。为了让它更令人困惑,当我用http://www.google.com代替http://www.taskyo.com时,它工作正常。如果我尝试通过Google访问http://www.taskyo.com,则当我点击该网址时,我会看到一个白页。我的代码如下:UIWebView不会加载某些网站

头文件

#import <UIKit/UIKit.h> 

@interface AppThirdViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UIWebView *tasksWebView; 

- (IBAction)goBack:(id)sender; 
- (IBAction)goHome:(id)sender; 

@end 

实现文件

#import "AppThirdViewController.h" 

@interface AppThirdViewController() 

@end 

@implementation AppThirdViewController 
@synthesize tasksWebView = _tasksWebView; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self goHome:self]; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    _tasksWebView = nil; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (IBAction)goBack:(id)sender 
{ 
    [_tasksWebView goBack]; 
} 

- (IBAction)goHome:(id)sender 
{ 
    NSURL *tasksURL = [NSURL URLWithString:@"http:/www.taskyo.com/"]; 
    NSURLRequest *tasksRequest = [NSURLRequest requestWithURL:tasksURL]; 
    [_tasksWebView loadRequest:tasksRequest]; 
} 

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
    NSLog(@"Error : %@",error); 
} 

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    NSLog(@"Started to load!"); 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSLog(@"Finished loading!"); 
} 

@end 

在我的控制台,我得到下面的输出:

Started to load 
Finished loading! 

有没有人有任何想法,解决问题? 在此先感谢。

编辑:固定 - 请参阅下面的答案。

+0

您是否尝试过其他网页,例如www.google.com?我可以在没有任何问题的情况下加载并在UIWebView中显示您的页面。因此,看看你如何显示视图控制器。 – Gruntcakes

+0

+1,很好的问题。 – 2012-06-07 14:19:18

+0

我把你的代码粘贴到一个简单的测试应用程序,并加载模拟器和设备的页面。如果其他页面为您加载,我不知道该说什么....您是否正在浏览缓存服务器? –

回答

1

在撰写本答案时,Taskyo.com不可用。 (即使我的网络浏览器也无法打开您提供的链接)。

+0

Ooops ...它看起来像我在其中一个链接上输入错字。尽管如此,代码仍然拼写正确,所以我的问题仍然保持不变... – gtmtg

+0

嗯..好的,我明白了。奇怪,的确如此。 – 2012-06-07 14:19:09

0

taskyo.com是一个新的域名?也许有些域名服务器还不知道。 (这不能解释,为什么你能够在移动Safari上打开页面)。

+0

看起来不像...从创作者的博客文章(http://www.dannyroa.com/2011/07/18/taskyo-access-google-tasks-on-your-mobile-device/),它看起来是从2011年7月... – gtmtg

0

一种可能性是该网站的JavaScript或HTML无效。移动版Safari可能不会使用您应用的确切库版本。例如,W3C验证程序在您的页面上显示了几个问题:Validate errors

您应该尝试的第一件事是将网页剥离为简单的“Hello World”消息,然后尝试添加回内容以查看问题出在哪里。您也可能从旧版本中获取陈旧,缓存的HTML。我喜欢添加一个“?rand = 2”参数,并增加一个值,以确保我获得当前文件。

+0

它不是我的网页...我只是试图加载它作为我的应用程序的功能之一... – gtmtg

0

经过更多测试后,我意识到我的代码没有问题,但实际的应用程序包本身。我从模拟器中卸载它并重建它,现在它正在工作。感谢你的帮助!

+0

有没有人有任何想法为什么发生,但?我不希望我的用户必须定期重新安装应用程序,如果我可以帮助它... – gtmtg

+0

*更新*再次发生。它在我卸载并重建之后起作用,但我更愿意修复此问题,以便正如我上面所说的那样,我的用户不必继续卸载并重新安装。 – gtmtg

+0

更新 - 我每隔三次运行应用程序或每三次运行一次,似乎就会发生这种情况。问题是什么? – gtmtg