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