[英]Can UILocalNotification fire a custom method when App is in background mode?
好吧標題是自我解釋。 我想創建一個App,可以在App處於后台模式時管理編程的本地通知。 通知工作順利但我想在觸發警報時觸發自定義方法。
可能嗎? 謝謝。
是的,可以做到。 你可以這樣做:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[NSTimer scheduledTimerWithTimeInterval:17.0 target:self selector:@selector(makeNotificationRequest:) userInfo:nil repeats:YES];
}
-(void)makeNotificationRequest:(NSTimer *)timer
{
CLLocation *location = [[AppHelper appDelegate] mLatestLocation];
NSMutableDictionary *paramDic = [[NSMutableDictionary alloc] init];
#ifdef _DEBUG
[paramDic setValue:[NSString stringWithFormat:@"77.586"] forKey:@"Lat"];
[paramDic setValue:[NSString stringWithFormat:@"12.994"] forKey:@"long"];
#else
[paramDic setValue:[NSString stringWithFormat:@"%f",location.coordinate.latitude] forKey:@"Lat"];
[paramDic setValue:[NSString stringWithFormat:@"%f",location.coordinate.longitude] forKey:@"long"];
#endif
WNetwork *mNetwork = [[WNetwork alloc] init];
[mNetwork makeRequsetWithURL:URL_Showbeeps type:JBJsonParser paramDictionary:paramDic delegate:self];
[mNetwork autorelease];
NSLog(@"URL HIT%@",paramDic);
[paramDic autorelease];
}
要根據警報自定義您的操作,您可以使用以下命令:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) {
;
}
}
當應用程序在后台運行時,沒有定義自定義方法。一旦通知被觸發,我們可以;也可以更改警報消息。 但是,當我們顯示警報消息然后通過單擊警報的“是”按鈕時,您會看到一個名為app的方法正在AppDelegate.m文件中的后台運行
如果應用程序位於前台,那么您需要- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
UIApplicationDelegate
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
方法,但是文檔建議當應用程序在此時不會調用此方法背景。
您可以通過調用UIApplication
實例上的scheduledLocalNotifications
來獲取本地通知列表 - 然后您可以輪詢這些通知以查看它們的時間並安排在后台模式下調用的功能。 這不一定與本地通知激活時100%匹配,但我認為它與App Store指南一樣接近。
通過調用presentLocalNotificationNow:
方法,您還可以在后台模式下顯示自己的本地通知:
因此,您可以通過僅顯示自己的通知而不是為操作系統安排它們來解決這個問題。
如果您嘗試從其他應用程序訪問本地通知,那么我不認為這是允許的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.