我在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
    }
}





  如何确保我是该文件的加载者?用户可以自己在url字段中写入该url。


您可以实现-textFieldDidBeginEditing-textFieldDidEndEditing并将一些布尔属性设置为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 - iPhone-我怎么知道URL是否是资源文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5885913/

10-11 16:35