是否可以判断正在加载的网页是远程还是本地



UIWebView:shouldStartLoadWithRequest:内,我想知道正在加载的页面是本地文件还是远程文件。有没有简单的方法可以找出答案?

我想每次加载文件时,我都可以在文件系统中搜索文件,但是有没有另一种方法?

您应该能够通过 URL 的类型来判断请求的类型。

它应该像 file:… vs http:…https:… 一样简单。

是的,这是可能的。应使用正则表达式来测试主机名。本地页面与正则表达式不匹配。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    static NSString *regexp = @"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9])[.])+([A-Za-z]|[A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexp];
    if ([predicate evaluateWithObject:request.URL.host]) {
        [[UIApplication sharedApplication] openURL:request.URL];
        return NO; 
    } else {
        return YES; 
    }
}

最新更新