2016-05-11 5 views
2

Ich bin auf der Suche nach Möglichkeiten zur Implementierung von stillen lokalen Push-Benachrichtigungen. Ich möchte eine unbeaufsichtigte Benachrichtigung an den Benutzer senden, wenn sich dieser Benutzer außerhalb des zulässigen Bereichs befindet.iOS Silent lokale Push-Benachrichtigungen Ziel c?

+0

Es gibt keine Einrichtung zu se nd eine stille lokale Benachrichtigung. – Paulw11

+0

Wenn du still sagst, was meinst du? Willst du Ton vermeiden? Bitte erläutern Sie dies weiter, diese Frage ist zu weit gefasst. – dokun1

+0

@ dokun1 Ich versuche Sendebenachrichtigung, die im Hintergrund wie Remote-Silent-Benachrichtigungen funktioniert. Der Benutzer sieht diese Benachrichtigungen nicht im Benachrichtigungscenter. –

Antwort

6

Gelöst. Beim Erstellen der lokalen Benachrichtigung sollten Sie keine folgenden Werte festlegen.

notification.alertBody = message; 
notification.alertAction = @"Show"; 
notification.category = @"ACTION"; 
notification.soundName = UILocalNotificationDefaultSoundName; 

Gerade Kiste lokale Benachrichtigung wie folgt aus:

UILocalNotification *notification = [[UILocalNotification alloc] init]; 
notification.fireDate = [NSDate date]; 
NSTimeZone* timezone = [NSTimeZone defaultTimeZone]; 
notification.timeZone = timezone; 
notification.applicationIconBadgeNumber = 4; 
[[UIApplication sharedApplication]scheduleLocalNotification:notification]; 

Dies wird lokale Benachrichtigung senden und wird nur angezeigt, IconBadgeNumber als 4. Es wird keine Benachrichtigung in Notification Center angezeigt, wenn App im Hintergrund ist.

Aktualisiert für iOS10 (UNUserNotificationCenter)

In AppDelegate

@import UserNotifications; 

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; 

UNAuthorizationOptions options = UNAuthorizationOptionAlert + UNAuthorizationOptionSound + UNAuthorizationOptionBadge; 

[center requestAuthorizationWithOptions:options 
         completionHandler:^(BOOL granted, NSError * _Nullable error) { 
          if (!granted) { 
           NSLog(@"Something went wrong"); 
          } 
         }]; 

In Viewcontroller

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; 

UNMutableNotificationContent *content = [UNMutableNotificationContent new]; 
//content.title = @"Don't forget"; 
//content.body = @"Buy some milk"; 
//content.sound = [UNNotificationSound defaultSound]; 
content.badge = [NSNumber numberWithInt:4]; 

UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:15 repeats:NO]; 


NSString *identifier = @"UniqueId"; 
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier 
                     content:content trigger:trigger]; 

[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) { 
    if (error != nil) { 
     NSLog(@"Something went wrong: %@",error); 
    } 
}]; 

Dies wird

als 4. eine stille Meldung nach 15 Sekunden mit Abzeichen Zählung senden
+0

Hallo @Ruturaj Desai: Danke, es funktioniert, aber ich brauche ähnliche für iOS 10 mit UNUserNotificationCenter. irgendeine Idee bitte. – Ammaiappan

+0

Hi @Ammaiappan, ich habe gerade meine Antwort für iOS 10 (UNUserNotificationCenter) aktualisiert. Dies könnte Ihnen helfen. Glückliche Kodierung. –

+0

Hallo @Ruturaj Desai, habe ich versucht, und es funktioniert perfekt, wenn App im Vordergrund ist, aber im Hintergrund funktioniert es nicht. Irgendwelche Arbeit für Hintergrund? –