如何在WebView中加载.html页面和在iOS中加载Safari中的所有www页面?

我是新手在iOS开发我加载我的HTML数据到WebView但有时它只包含href链接作为.html链接和一些时间网站链接像www.google.co.in所以我想只加载到Webview的HTML数据和任何网站都加载到Safari,因为我写了一个类似的代码

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *link = [[request URL] relativeString]; if ([link isEqualToString:@"module1learningobjectives.html"]) { return NO; } else { [[UIApplication sharedApplication] openURL:[request URL]]; return YES; } return YES; } 

然后它加载web浏览器中的.html文件,但网站在safari和Webview中都打开,我只想在Safari浏览器打开网站,请给我解决scheme。

我会做这样的事情:

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSLog("URL is %@, and has an extension of %@", request.URL, [request.URL pathExtension]); if ([[request.URL pathExtension] isEqualToString:@".html"]) return YES; return NO; } 

这是你问的吗?

如果你想让Safari浏览器使用非文件和你自己的WebView文件,那么试试这个:

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ( ! ([request.URL isFileURL]) ) { [[UIApplication sharedApplication] openURL:[request URL]]; return NO; } return YES; } 

只要修改你的代码到下面的代码。

 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if (navigationType == UIWebViewNavigationTypeLinkClicked) { NSString *strLink=request.URL.absoluteString; if([strLink rangeOfString:@".html"].location!=NSNotFound) { [[UIApplication sharedApplication]openURL:[request URL]]; return NO; } else { return TRUE; } return NO; } return YES; } 

以上代码检查要打开的链接是否有.html扩展名? 并且相应地工作。

还有一件事你没有提到,href是本地页面或外部链接的链接。

 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = request.URL; NSString * temp = [NSString stringWithFormat:@"%@",url]; if ([temp rangeOfString:@"www"].location != NSNotFound) { // show alert view for go to safari // ie [[UIApplication sharedApplication] openURL:url]; } else { // your regular html page pushed } }