Проверить, является ли URL локальным файлом? - PullRequest
0 голосов
/ 25 октября 2011

Я пытаюсь проверить текущий URL в UIWebView с помощью следующего кода:

- (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!");

    }
}

Но код в локальном URL (652BAC0C-DEAE-4695-9195-BE617B9D5106 для меня) не будет одинаковым для всех, так как я могу сделать одну и ту же проверку, но без длинного кода?

Ответы [ 4 ]

9 голосов
/ 25 октября 2011

Это будет работать как более общее решение для определения, является ли данный 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...
}

(который отвечает на предмет вашего вопроса Как я могу проверить, является ли URL локальным файлом? )

3 голосов
/ 25 октября 2011
NSString *loginpage = [[NSBundle mainBundle] pathForResource:@"login" ofType:@"html"];

Поскольку вы используете пробелы в своем приложении (что я рекомендую вам больше не делать), вы можете использовать следующий код для имитации этих %20 escape-строк:

NSString *loginpage = [[[NSBundle mainBundle] pathForResource:@"login" ofType:@"html"] stringByReplacingOccurrencesOfString:@"%20" withString:@" "];
2 голосов
/ 25 октября 2011

Вы можете использовать эти строки для поиска в строке:

if ([your_complete_string rangeOfString:@"YOUR_SEARCH_STRING"].location != NSNotFound){

    // Do your stuff here if found

}
0 голосов
/ 15 декабря 2017

Вы можете найти, используя fileReferenceUrl

//if local file
NSURL *url = [NSURL fileURLWithPath:songsList[index]];
if(url.fileReferenceURL != nil){
    //is local URL
}else{
    //Is live
   url = [NSURL URLWithString:songsList[index]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...