UIWebView不会加载某些网站

时间:2012-06-07 13:33:26

标签: iphone objective-c ios cocoa-touch uiwebview

我对UIWebView有点问题。我在Interface Builder中创建了我的UIWebView,并创建了一个outlet作为tasksWebView。我还将其作为代表链接到我的View Controller。我想加载http://www.taskyo.com,但是当我尝试加载它时,我只是得到一个白页。它在Mobile Safari中运行良好,所以我对问题是什么感到困惑。为了让它更加令人困惑,当我用http://www.taskyo.com替换http://www.google.com时,它运行正常。如果我尝试通过Google访问http://www.taskyo.com,则在点击该网址时会显示一个白页。我的代码如下:

标头文件

#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!

有没有人对这个问题有任何想法? 提前谢谢。

编辑:已修复 - 请参阅下面的答案。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

taskyo.com是一个新域名吗?也许有些域名服务器还不知道。 (这无法解释,为什么你可以在Mobile Safari上打开页面。)

答案 2 :(得分:0)

一种可能是该网站包含无效的JavaScript或HTML。 Mobile Safari可能没有使用您的应用程序所在的确切库版本。例如,W3C验证程序显示了您网页的几个问题:Validate errors

你应该尝试的第一件事就是将网页剥离成一个简单的“Hello World&#34;消息然后尝试添加回内容以查看问题所在。您也可能从旧版本中获取过时的缓存HTML。我喜欢添加&#34;?rand = 2&#34;参数,具有递增值,以确保我获得当前文件。

答案 3 :(得分:0)

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