Mam widget, który wywołuje odpowiednią aplikację przez NSURL i extensionContext, aby aktywować określoną akcję w aplikacji.Unikaj utraty powiadomień wysyłanych przez widget ze względu na ekran spamu lub nieprawidłowy kontroler aktywny
W application:openURL:options:
metody AppDelegate za mam:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
if let path = url.path{
if path.containsString("action"){
NSNotificationCenter.defaultCenter().postNotificationName(MyViewController.purchasmyActionKey, object: nil)
}
}
return true
}
Gdy aplikacja jest otwarta i ma MyViewController
czynną, akcja jest wykonana perfekcyjnie. Ale jeśli jestem na innym kontrolerze widoku w aplikacji lub aplikacja jest zamknięta, akcja nie jest wykonywana.
Czy ktoś może ustawić mnie na dobrej drodze?
NB: Moim głównym kontrolerem jest UITabBarController
z różnymi kontrolerami widoków podrzędnych. Niektóre z nich to UINavigationControllers
(które zawierają kontrolery gridowe), a druga to ListViewController
.