iOS ::网站无法在iOS Safari和UIWebView中工作

问题描述:

我有一个UIWebView应用程序,它加载了一个网站https://app.bridallive.com/。以前它在iPad上运行良好,但现在不行。 它既不加载在UIWebView(在最简单的应用程序中)也不加载在iOS Safari中。适用于Mac OS。 我试图与诊断是:iOS ::网站无法在iOS Safari和UIWebView中工作

-(void) loadWebSite { 
    NSURL * url = [NSURL URLWithString:@"https://app.bridallive.com/#/dashboard?iPadApp=true"]; 
    NSURLRequest * request = [NSURLRequest requestWithURL:url]; 
    [self.webView loadRequest: request]; 
} 

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

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

NSAppTransportSecurity设置为YES和网站具有有效和可信的证书。

这是我在futher实验中使用:

-(void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self loadWebSite]; 
} 

,但这并没有给任何错误。

任何人都可以提出一种方法来诊断这在iOS?

最好的问候, 安德烈

+0

是否启用'NSAppTransportSecurity'标志? – dirtydanee

+0

是的,这是标志设置为是,网站已经信任和正确的SSL证书。 –

+0

你可以显示代码,你试图打开'url'吗? – dirtydanee

UIWebView中有一个协议,UIWebViewDelegate,它可以帮助你观察你的 改变它实现使用的是什么,你可以观察你的UIWebView中加载lifecyclye变化的几个方法:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSLog(@"shouldStart"); 
    return true; 
} 

- (void)webViewDidStartLoad:(UIWebView *)webView { 
    NSLog(@"webViewDidStartLoad"); 
} 

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

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

为了接收此功能的回调,请注册.h中类别界面上的代理。

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController <UIWebViewDelegate> 

@end 

我已经设置了一个示例项目,并在打开的URL,我收到了didFailLoadWithError回调以下错误:

错误域= WebKitErrorDomain代码= 101 “(空)”

看来你没有正确编码你的请求。您应该编码字符串方式如下:

NSString *encodedString=[[NSString stringWithFormat:@"https://app.bridallive.com/#/dashboard?iPadA‌​pp=true"] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 
    NSURL *weburl = [NSURL URLWithString:encodedString]; 

enter image description here

+0

这就是我所做的。 正如我提到的应用程序以前完全工作。 我怀疑这可能是iOS 10.x或XCode 8的问题。 其他网址,比如说https://google.com效果不错 –

+0

我已更新了我的答案。 – dirtydanee

+0

谢谢,但这不起作用。 移动会让事情变得更糟 - 像屏幕截图一样的不断加载屏幕。 最后我在iPad中发现了一个切换语言的错误 - 看起来网站JavaScript中有错误。我发现在Mac OS Safari中启用Develper控制台并连接到iPad的Safari的问题。 反正非常感谢。 –