2015-08-23 5 views
1

Может ли кто-нибудь подумать о объяснении случая, когда openURL возвращает false, но приложение успешно открывается?openURL возвращает false, но приложение успешно открывается

NSString *appUrlPathStr = @""; 
NSURL *appUrlPath = [NSURL URLWithString:appUrlPathStr]; 

if([[UIApplication sharedApplication] canOpenURL:appUrlPath]) { 
    if ([[UIApplication sharedApplication] openURL:appUrlPath]) { 
     NSLog(@"app opened"); 
    } else { 
     NSLog(@"app not opened"); 
    } 
} 

Примечание: здесь не указана строка url в коде.

+0

Это поможет, если вы обновите свой вопрос с помощью своего точного кода, включая фактический URL. – rmaddy

+0

Там вы идете, я добавил код ... –

+0

Вы тестировали на реальном устройстве или в симуляторе? – ColdSteel

ответ

0

Логика объяснения, что я испытал:

Я проверил журналы устройств и я замечает, что приложение, которое я пытаюсь открыть, побеги журналов и застревают путь, прежде чем он достигнет переднего плана. (более того, это происходит, когда исходное приложение находится на переднем плане).

Таким образом, openURL зависает и достигает своего таймаута, затем он возвращает false, и приложение, которое я пытаюсь открыть, в конце концов открывается.

Заключение, мне нужно проверить приложение, которое я открываю, и посмотреть, почему он зависает, прежде чем он станет активным.

Спасибо всем, и я надеюсь, что это поможет другим.

-1

Я видел тот же вопрос в прошивкой 7. мое решение:

1)

dispatch_async(dispatch_get_main_queue(), ^{ 
    [[UIApplication sharedApplication] openURL:url]; 
}); 

или

2)

[self performSelector:@selector(methodToRedirectToURL:) withObject:url afterDelay:0.1]; 
2

я не только имея та же проблема, но для ухудшения ситуации другое приложение будет открываться только тогда, когда оно не будет приостановлено или неактивно (т.е. новый старт)

Для меня проблема заключалась в том, что я не добавил пользовательскую схему, которую я хотел запросить в мой файл Info.plist.

Как только я добавил его к записи LSApplicationQueriesSchemes, проблемы ушли.

query custom scheme

Для получения дополнительной информации см: http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl/

Надеется, что это помогает!

+0

Очень интересная статья. Спасибо за ссылку, я не знал этой особенности. – Martin

Смежные вопросы