检查URL是否是本地文件?

pix*_*abs 0 cocoa-touch objective-c uiwebview ios

我正在尝试UIWebView使用以下代码检查a中的当前URL :

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    NSString *currentURL = webView.request.URL.absoluteString;

    NSLog(@"Current URL: %@", currentURL);

    NSString *loginpage = @"file:///var/mobile/Applications/652BAC0C-DEAE-4695-9195-BE617B9D5106/School%20VLE%20Business.app/login.html";

    if([currentURL isEqualToString:loginpage])
    {
        NSLog(@"Inputting user details...");

        NSString *result;
        result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#usernamefield').val('%@');", username]];
        result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#passwordfield').val('%@');", password]];
        result = [webView stringByEvaluatingJavaScriptFromString:@"$('#submitbutton').click();"];

        NSLog(@"Logged in!");

    }
}
Run Code Online (Sandbox Code Playgroud)

但是本地URL(652BAC0C-DEAE-4695-9195-BE617B9D5106对我来说)中的代码对于每个人来说都不一样,所以我怎么能做同样的检查却没有长代码呢?

Jon*_*lis 9

这可以作为确定给定URL是来自本地文件系统还是远程加载的更一般的解决方案: -

NSString *str = @"file://var/mobile/Applications/652BAC0C-DEAE-4695-9195-BE617B9D5106/School%20VLE%20Business.app/login.html";
NSURL *url = [NSURL URLWithString:str];
if ([[url scheme] isEqualToString:@"file"]) {
    // URL is a (local) file...
}
Run Code Online (Sandbox Code Playgroud)

(这回答了你的问题的主题我如何检查URL是否是本地文件?)