iPhone - 我如何知道 URL 是否是资源文件?

标签 iphone url resources uiwebview request

我在 shouldStartLoadWithRequest 中捕获了一个 url。

我如何知道它是否是我正在尝试打开的项目资源之一(例如使用 [self.webView loadHTMLString:htmlContentFinal baseURL:[NSURL fileURLWithPath:bundlePath]];),或者其他什么?

最佳答案

您可以检查 URL 字符串是否以 file:// 开头:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if (request.URL.isFileURL) {
        // do some stuff
    }
}

How may I ensure that I am the one who loaded that file? The user could wrote that url in the url field himself.

您可以实现 -textFieldDidBeginEditing-textFieldDidEndEditing 并将一些 bool 属性设置为 YES:

- (void)textFieldDidEndEditing:(UITextField *)textField {
    if ([[textField.text substringToIndex:7] isEqualToString:@"file://"]) {
        self.fileUrlEnteredManually = YES;
    } else {
        self.fileUrlEnteredManually = NO;
    }
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if (request.URL.isFileURL) {
        if (self.fileUrlEnteredManually) {
            // user entered "file://" manually
        } else {
            // user didn't
        }
    }
}

- (void)viewDidload {

    // ...

    fileUrlEnteredManually = NO;
    [webView loadRequest:yourLocalRequest];

}

关于iPhone - 我如何知道 URL 是否是资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885913/

相关文章:

linux - Linux 中每个进程的编程资源监控

ios - 如何在 Objective-C 、iOS 中缩放/调整 CVPixelBufferRef 的大小

javascript - 在不触发 hashchange 事件的情况下以编程方式更新哈希?

html - 固定页眉与页内 anchor 重叠

php - Apache mod_rewrite 语法不起作用

c++ - 为我的程序设置一个 exe 图标

android - 为什么无法以静态方式访问资源?

ios - 在开始一个新项目时考虑 future 的 Retina/HD iPad 是否合理?

iphone - 如何在 iOS 上正确调用单例类

iphone - iOS 应用程序 - 如何每 60 秒检查一次服务器更新?