2016-11-24 24 views
5

Push bildirimleri yönetmek için OneSignal kullanıyorum. Bazı bildirimler için, ben alıyorum:Nasıl düzeltebilirim: OneSignal ile ilgili şikayette bulunan dil içeriği Swift

... Bildirimler İngilizce dil içeriğini

olmalıdır Ama ingilizce dilinde şeyi gönderme sadeceolduğum

oneSignal.postNotification(["headings" : ["en": "\(who)"], 
          "subtitle" : ["en": "\(subtitle)"], 
          "contents" : ["en": "\(contents)"], 
          "include_player_ids": [result]], 

Kim, altyazı, içerik Dizelerdir, sonuç alıcı kimliğidir. Bazı bildirimler gönderilir, bazıları için hata mesajını alırım.

Konsolu:

> ERROR: Create notification failed 
Error Domain=OneSignalError Code=400 "(null)" UserInfo={returned={ 
    errors =  (
     " Notifications must have English language content" 
    ); 
}} 

Benim tam fonksiyon:

func sendPush(_ receiverID: String, _ who: String, _ didWhat: String, _ message: String?) { 

    var subtitle = "" 
    var contents = "" 
    if message != nil { 
     contents = message! 
    } 

    switch didWhat { 
    case "likePost": 
     subtitle = "liked your post" 
    case "commentPost": 
     subtitle = "commented on your post" 
    case "likeComment": 
     subtitle = "liked your comment" 
    case "message": 
     subtitle = "sent you a message" 
    case "friendsRequest": 
     subtitle = "sent you a friend request" 
    case "friendAccept": 
     subtitle = "accepted your friend request" 
    case "follow": 
     subtitle = "just followed you" 
    default: 
     break 
    } 

    getOneSignalPlayerID(receiverID, completion: { result in 

     oneSignal.postNotification(["headings" : ["en": "\(who)"], 
            "subtitle" : ["en": "\(subtitle)"], 
            "contents" : ["en": "\(contents)"], 
            "include_player_ids": [result]], 
     onSuccess: { (success) in 
      if success != nil { 
       print(success!) 
      } 
     }, onFailure: { (failure) in 
      if failure != nil { 
       print(failure!) 
       crashlyticsLog("getOneSignalPlayerID", failure!.localizedDescription) 
      } 
     }) 
    }) 
} 

ben eksik? Yardım çok takdir edilir.

cevap

3

4 alandan birinin yanlış olduğunu varsayalım. Bu durumda yanlış, ingilizce olmayan kodlamada sone kaçak karakterleri veya karakterleri olduğu anlamına gelebilir. Bildirimi göndermeden önce her alanı yazdırın.

Bu hatayı artıran başka bir durum, alanlardan biri boş veya sıfır olduğu için kaynaklanabilir. Bildirimi göndermeden önce bunları bir günlüğe yazdırın.

+0

görünür:

let objNotif = ["contents": ["en" : message], "include_player_ids": [userID!]] //print(objNotif) OneSignal.postNotification(objNotif, onSuccess: { (jsonSuccess) in //Post OK }) { (error) in //Error } 

OneSignal Dokümantasyon: Bu çalışan bir kod örneğidir. Altyazı gövdesi olarak boş dizeler göndererek, isteğe bağlı değerler ile bir fonksiyonum vardı ... daha somut bir hata mesajı yardımcı olurdu ... yardımınız için teşekkür ederiz –

+0

Karşılama. Lütfen 'cevap' olarak işaretle. – Vincent

+3

yapacağım. ve ben de size ödül vereceğim. Ödülün sadece 6 günü kaldı ve belki birinin yararlı ipuçları ya da bunun gibi bir şey var. endişelenme seni unutmayacak. –

İlgili konular