2016-02-22 20 views
5

Yerel bir bildirim ekledim, böylece açılışı sırasında bir itme aldığımda hala bir açılır pencere ve bir ses geliyor. Android'de çalışıyor, ancak iOS'ta yerel bildirim hiç görüntülenmiyor.ios üzerinde çalışmayan bir yerel bildirimleri kodlayın

Push bildirimleri her iki platformda da sorunsuz çalışıyor.

if(Display.getInstance().getCurrent() != null) { 
    LocalNotification n = new LocalNotification(); 
    n.setId(value); 
    n.setAlertBody(value); 
    n.setAlertTitle({app name}); 
    n.setBadgeNumber(1); 
    Display.getInstance().scheduleLocalNotification(n, System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE); 
} 

cevap

3

Yerel bildirimleri Uygulama ön planda açıkken ateş etmeyin. Uygulama çalışırken ses çıkarmak için farklı bir mekanizma kullanmalısınız. Örneğin, Display.vibrate()

+0

Tamam Bu mesajı ve mesajı görüntülemek için kullanacağım, teşekkür ederim! – peopletookallthegoodnames

0

Eğer Uygulamaya, yerel bildirimleri kullanan gerçeğini kayıt registerUserNotificationSettings aradın:

Bu (app açıksa) bildirim tetiklemesi gereken itme geri aramasında benim kodudur? Bunu yapmazsanız, yerel bildirim gönderme isteğiniz göz ardı edilir.

o yöntemin açıklamasından bu metni Bkz:

uygulama görüntüler ise uyarıları sesleri oynatmak veya simgesini rozetleri, sen görüşmesinin fırlatma çevrimi sırasında bu yöntem uyarı için izin talep etmek zorundadır kullanıcı bu yollarla. (Bu isteği, doğrudan uygulamaIconBadgeNumber özelliğini ayarlamak istiyorsanız da yapmanız gerekir.) Genellikle, uygulamanızın, uygulamanızla ilgili yeni bilgileri uyarması için yerel veya uzak bildirimleri kullanıyorsa bu isteği yaparsınız. Uygulamanız ilk kez başlatıldığında ve bu yöntemi çağırdığında, sistem , kullanıcıya uygulamanızın bildirimlerini teslim etmesine izin verilip verilmeyeceğini sorar ve yanıtı depolar. Daha sonra sistem, kullanımının gerçek tipteki bildirimlerini belirlemek için kayıtlı yanıtını kullanır.

Bu yöntem çağrıldıktan sonra uygulama, sonuçları bildirmek için uygulamasının temsilcisinin uygulama: didRegisterUserNotificationSettings: yöntemini çağırır. İsteğiniz kullanıcı tarafından verilmiş veya reddedilmişse 'u belirlemek için bu yöntemi kullanabilirsiniz.

Herhangi bir yerel bildirimi zamanlamadan önce bu yöntemi çağırmanız veya itme bildirim servisine kaydolmanız önerilir. Bu yöntemin yeni bir kullanıcı ayarları nesnesiyle çağrılması, önceki ayarların yerine geçer. Özel eylemleri destekleyen uygulamalar, numaralı telefonun bildirim desteklenen tüm eylemlerini bildirimSettings nesnesinde içerir.

+0

Codename One'ın kullanılması genellikle yerel platform koduna doğrudan erişemez (çapraz platform çerçevesidir). – peopletookallthegoodnames

+0

Maalesef, sorunuzun bir kısmını özledim. Yerel bildirimleri Codename One'dan doğru şekilde nasıl kuracağımı bilmiyorum.Ben "Codename Bir registerUserNotificationSettings" googling ve bir çözüm olup olmadığını bakın. –

0

Eğer

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
     if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) 
     { 
      [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; 
      [[UIApplication sharedApplication] registerForRemoteNotifications]; 
     } 
     else 
     { 
      [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
      (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; 
     } 
} 
1
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 
{ 

[[NSNotificationCenter defaultCenter] postNotificationName:@"DriverNotification" object:nil userInfo:userInfo]; 
// [[NSNotificationCenter defaultCenter] postNotificationName:@"UserNotification" object:nil userInfo:userInfo]; 
     NSLog(@"%@",userInfo); 
} 

Kişisel View Controller Bu kod koyun kayıt yerel bildirim için AppDelegate.m dosyasının didFinishLaunchingWithOptions yönteminde kodunun altına eklemeniz gerekir

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"DriverNotification" object:nil 
]; 
İlgili konular