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?
最好的问候, 安德烈
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?iPadApp=true"] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSURL *weburl = [NSURL URLWithString:encodedString];
这就是我所做的。 正如我提到的应用程序以前完全工作。 我怀疑这可能是iOS 10.x或XCode 8的问题。 其他网址,比如说https://google.com效果不错 –
我已更新了我的答案。 – dirtydanee
谢谢,但这不起作用。 移动会让事情变得更糟 - 像屏幕截图一样的不断加载屏幕。 最后我在iPad中发现了一个切换语言的错误 - 看起来网站JavaScript中有错误。我发现在Mac OS Safari中启用Develper控制台并连接到iPad的Safari的问题。 反正非常感谢。 –
是否启用'NSAppTransportSecurity'标志? – dirtydanee
是的,这是标志设置为是,网站已经信任和正确的SSL证书。 –
你可以显示代码,你试图打开'url'吗? – dirtydanee