Zoeken…
Invoering
AppDelegate is een protocol dat methoden definieert die door het singleton UIApplication-object worden aangeroepen als reactie op belangrijke gebeurtenissen tijdens de levensduur van een app.
Normaal gebruikt om taken uit te voeren bij het opstarten van de applicatie (app-omgeving instellen, analitycs (bijv .: Mixpanel / GoogleAnalytics / Crashlitics), DB-stack enz.) En afsluiten (bijv .: DB-context opslaan), behandeling van openstaande URL-aanvragen en soortgelijke applicatie-brede taken.
Alle staten van toepassing via AppDelegate-methoden
Om bijgewerkt te worden of om iets te doen voordat de app live gaat naar de gebruiker, kunt u de onderstaande methode gebruiken.
AppDidFinishLaunching
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Write your code before app launch
return YES;
}
Terwijl de app op voorgrond komt:
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
Wanneer de app wordt gestart en ook de achtergrond van de voorgrond raakt onderstaande methode:
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
Terwijl App Enter op de achtergrond:
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
Terwijl app ontslag actief is
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}
Terwijl de app wordt beëindigd:
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
AppDelegate-rollen:
- AppDelegate bevat de
startup code
uw app. - Het reageert op
key changes
in destate
van uw app. In het bijzonder reageert het op zowel tijdelijke onderbrekingen als op veranderingen in de uitvoeringstoestand van uw app, zoals wanneer uw app van de voorgrond naar de achtergrond overgaat. - Het
responds to notifications
die van buiten de app afkomstig zijn, zoals externe meldingen (ook bekend als pushmeldingen), weinig geheugenwaarschuwingen, meldingen voor het voltooien van downloads en meer. - Het
determines
of hetstate preservation
enrestoration
moet plaatsvinden en helpt waar nodig bij het behoud en herstel. - Het
responds to events
die zich op de app zelf richten en die niet specifiek zijn voor de weergaven of weergavecontrollers van uw app. U kunt het gebruiken om de centrale gegevensobjecten van uw app of inhoud die geen eigen weergavecontroller heeft, op te slaan.
Een URL-gespecificeerde bron openen
Vraagt de gemachtigde om een bron te openen die is opgegeven door een URL, en biedt een woordenboek met startopties.
Voorbeeld van gebruik:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return SomeManager.shared.handle(
url,
sourceApplication: options[.sourceApplication] as? String,
annotation: options[.annotation]
)
}
Lokale en externe meldingen verwerken
Voorbeeld van gebruik:
/* Instance of your custom APNs/local notification manager */
private var pushManager: AppleNotificationManager!
registratie:
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
// Called to tell the delegate the types of notifications that can be used to get the user’s attention
pushManager.didRegisterSettings(notificationSettings)
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
// Tells the delegate that the app successfully registered with Apple Push Notification service (APNs)
pushManager.didRegisterDeviceToken(deviceToken)
}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
// Sent to the delegate when Apple Push Notification service cannot successfully complete the registration process.
pushManager.didFailToRegisterDeviceToken(error)
}
Externe meldingen verwerken:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
// Remote notification arrived, there is data to be fetched
// Handling it
pushManager.handleNotification(userInfo,
background: application.applicationState == .Background
)
}
Lokale kennisafhandeling:
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
pushManager.handleLocalNotification(notification, background: false)
}
Verwerkingsactie (verouderd):
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject],
completionHandler: () -> Void) {
pushManager.handleInteractiveRemoteNotification(userInfo, actionIdentifier: identifier, completion: completionHandler)
}