我是iOS开发中的新手我将我的HTML数据加载到WebView但有时它只包含href链接作为.html链接和一些时间网站链接如www.google.co.in
所以我想只加载html数据到Webview和任何网站都加载到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;
}
然后它在网页视图中加载.html文件,但网站在safari和Webview中打开我想只有网站在safari中打开,请给我解决方案。
答案 0 :(得分:1)
我做这样的事情:
- (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 for文件,请尝试以下操作:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ( ! ([request.URL isFileURL]) ) {
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
return YES;
}
答案 1 :(得分:0)
只需将代码修改为以下代码即可。
-(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是本地页面或外部链接的链接。
答案 2 :(得分:0)
-(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
// i.e
[[UIApplication sharedApplication] openURL:url];
}
else
{
// your regular html page pushed
}
}