UIWebView 在 iOS 5 和 6 之间略有不同,因为消息
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
在调用 loadHTMLString:baseURL: 时发送到 iOS 6 中的视图委托,但在 iOS 5 中并非如此。我的委托方法是
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
似乎一个空的基本 URL 导致共享应用程序加载失败。由于这是 iOS 6 的新功能,这似乎是罪魁祸首,也许你有类似的东西。在委托方法中检查空的基本 url 解决了我的问题。它不漂亮,但它有效。
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ( [@"file:///" isEqualToString:[[request URL] absoluteString]] ) {
return YES;
}
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}