我想检查我的WebView是否在本地加载特定的html页面(例如index2.html)。那可能吗?谢谢!
编辑:
我使用过这段代码:
NSString *currentURL
= webview1.request.URL.absoluteString;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"indexPRO" ofType:@"html"];
urlLocation1 = [NSURL fileURLWithPath:filePath];
if(currentURL = urlLocation1){ //Do something..
但不起作用....是因为我在currentURL中使用“绝对字符串”而在“urlLocation1”中使用相对字符串??
答案 0 :(得分:3)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
// examine request to see what url is about to load.
// return YES to allow the load, NO to disallow.
// don't forget to set the delegate:
// myWebView.delegate = self;
return YES;
}
webViewDidFinishLoad或webView:didFailLoadWithError之一将在请求完成时被调用。如上所述,检查UIWebView对象的“loading”属性将指示是否仍然加载了某些内容。
if( myWebView.loading ) ...
编辑:回复您的其他信息,(假设我理解您要做的事情......)尝试以下方法:
// compare scheme property of URL against "file"
if( [[webview1.request.URL scheme] isEqualToString:@"file"] ){
NSLog(@"load request is local file");
// ... your code here ...
}
我不知道一旦加载完成后UIWebView“request”属性是否有效,还没有测试过。如果没有,请保留最近加载的URL的私有副本或在其他地方请求。
答案 1 :(得分:1)
您可以检查其“loading”属性以查看是否已完成。您可以检查“request”属性以获取NSURLReqest以查看它正在加载或已加载的内容。