[英]How to determine background app come to foreground in action of tapping local notification
蘋果醫生在后台獲得用戶的關注說
通知是掛起,處於后台或未運行的應用程序引起用戶注意的一種方式。
由於區域監視,我的應用被iOS喚醒,並is in the background
並發布本地通知。 用戶點擊通知,應用將處於前台。
如何確定應用程序由於用戶點擊通知而進入前台?
哪個委托方法將包含通知信息。
didFinishLaunchingWithOption or didReceiveLocalNotification
如果您的應用程序在后台運行,並且在LocalNotification Banner上點擊,則將被調用以下方法:
-(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
在iOS 8之后:
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void(^)())completionHandler
如果應用未在后台運行,您將在以下位置收到通知:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if ([launchOptions valueForKey:@"UIApplicationLaunchOptionsLocalNotificationKey"]) {
// here you will get
}
您可以在觸發UILocalNotification並檢測是否調用了-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification時檢測到您的應用程序的狀態,以確保接收到本地通知。
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateInactive) {
// Application was in the background when notification was delivered.
} else {
}
}
您可以通過使用application.applicationState確定
if(application.applicationState == UIApplicationStateInactive)
{
NSLog(@" Inactive");
// when you tapping on notification
}
else if (application.applicationState == UIApplicationStateBackground)
{
NSLog(@" background");
}
else
{
NSLog(@" Active");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.