【问题标题】:Xcode UIWebView not showing content of URL, blank white webview, no errorsXcode UIWebView 不显示 URL 的内容,空白的白色 webview,没有错误
【发布时间】:2014-11-03 22:45:41
【问题描述】:

我已经坚持了几天了。我正在使用 iOS 模拟器对此进行测试。我有一个假设要加载 URL 的 webView。它似乎试图加载 URL,因为当我加载 Yahoo URL 时,顶部的 Yahoo 图标/横幅会显示,但 url 的实际内容不会加载,它只是一个空白区域。如果我加载另一个顶部没有任何横幅的 URL,例如“http://www.google.com”,它将只是一个空白的白色 webView。如果我更改代码以在模拟器中打开与 Safari 应用程序相同的 URL,则一切正常。请帮忙!!

WebViewController.h:

#import <UIKit/UIKit.h>

@interface WebViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIWebView *webView;

@property (strong, nonatomic) NSString *urlBusinessLink;

@end

WebViewController.m:

- (void)viewDidLoad {
    [super viewDidLoad];
     @try {           
        NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@", self.urlBusinessLink]];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
       [self.webView loadRequest: request];
    }
    @catch (NSException *exception) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"Website is unavailable." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [alertView show];
    }
}

当我运行代码时,没有任何错误。我放入的异常处理也没有捕获任何东西。看起来它要么在加载 url 的一开始就被冻结,要么不断刷新,因此实际上没有任何内容显示。

【问题讨论】:

  • 您好,您使用的是哪个 Yahoo URL?
  • 一瞬间我可以看到从雅虎加载的图片,但我说的是毫秒。然后它消失了,只显示雅虎横幅。
  • 您的代码(没有 try-catch 块)对我来说很好。 urlBusinessLink 是字符串吗(如果是,则不需要使用 stringWithFormat)?
  • 好吧,我认为代码没有任何问题。因为 webView 在我的应用程序的早期版本中显示了 URL。然后突然就不行了。就像它正在尝试加载到网页中,但是一开始就冻结或不断刷新页面?

标签: ios objective-c iphone xcode uiwebview


【解决方案1】:

你不应该使用@try @catch 块。

使用 UIWebViewDelegate 来捕获错误

self.webView.delegate = self;
....

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{

}

如果您从 xib 文件加载视图,请使用 awakeFromNib 而不是 viewDidLoad

【讨论】:

  • 添加了这个,但仍然没有捕捉到任何东西
  • 在何时何地创建 UIWebView ?也许它只是空
  • 它是在情节提要中创建的,所以我猜它会在视图控制器加载后立即创建
  • 其实是这样,但在这种情况下使用: awakeFromNib 而不是 viewDidLoad
  • 不能使用它,前一个视图允许用户选择要访问的网站并将该 URL 传递给 webviewcontroller。如果我使用 awakeFromNib,则 url 将为空。
【解决方案2】:

您应该尝试添加self.webView.delegate = self

并确保您已添加“UIWebViewDelegate

使用委托方法识别加载的 URL - (void)webViewDidStartLoad:(UIWebView *)webView

确保加载了正确的 URL。

希望对你有帮助!!

【讨论】:

  • 谢谢。我添加了它,它消除了我收到的奇怪警告,但问题仍然存在。
  • 尝试了 URL“local.yahoo.com/info-21329298-akiko-s-sushi-bar-san-francisco”它对我来说工作正常。我设置的属性: NSURLRequest *_urlReq = [NSURLRequest requestWithURL:[NSURL URLWithString:@"local.yahoo.com/…; [notificationWebView loadRequest:_urlReq]; notificationWebView.scalesPageToFit = YES; notificationWebView.scrollView.delegate = self; [notificationWebView.scrollView setShowsHorizo​​ntalScrollIndicator: NO];这可能会有所帮助!
猜你喜欢
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 2017-08-05
  • 2015-03-04
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多