首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sendbird不在iOS上推送通知

Sendbird不在iOS上推送通知
EN

Stack Overflow用户
提问于 2016-09-20 06:33:54
回答 2查看 1.3K关注 0票数 1

我已经跟随文档成功注册了推送通知到Sendbird (上传的.p12开发证书+注册设备令牌到Sendbird SDK等),但没有收到任何通知。

代码语言:javascript
复制
func application( application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData ) {

    NSUserDefaults.standardUserDefaults().setObject(deviceToken, forKey: "deviceToken")

    SBDMain.registerDevicePushToken(deviceToken) { (status, error) in
        if error == nil {
            if status == SBDPushTokenRegistrationStatus.Pending {

                SBDMain.connectWithUserId("\(UserDataStore.ownerProfile?.id!)", completionHandler: { (user, error) in

                    SBDMain.registerDevicePushToken(SBDMain.getPendingPushToken()!, completionHandler: { (status, error) in
                        print("Sendbird Registration Succeeded 2nd attempt")
                    })
                })

            } else {
                print("Sendbird Registration Succeeded")
            }
        } else {
            print("Sendbird Push Registration Failed")
        }
    }
}

在我的didReceive...我什么都没收到。

代码语言:javascript
复制
 func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {

    if let aps = userInfo["aps"] as? NSDictionary {
        if let alert = aps["alert"] as? NSDictionary {
            if let message = alert["message"] as? NSString {
                print(message)
            }
        } else if let alert = aps["alert"] as? NSString {
            print(alert)
        }
    }

    if application.applicationState ==  .Inactive {
        NSNotificationCenter.defaultCenter().postNotificationName("pushNotificationReceived", object: nil)
    } else {
    NSNotificationCenter.defaultCenter().postNotificationName("pushNotificationReceivedActive", object: nil)
    } 
}

我过去做过推送通知,对这个过程很熟悉。事实上,我刚刚用Firebase Cloud Messaging进行了测试,推送与他们的服务配合得很好。如果有人能帮上忙,我会非常感谢……我很好奇,看看是否有任何额外的步骤,需要采取与Sendbird。

更新:我已经联系了Sendbird,问题是他们的仪表板上有一个bug,你可以在那里上传.p12文件;删除文件并重新上传可以解决这个问题。自那以后,该错误已被修补。

EN

回答 2

Stack Overflow用户

发布于 2016-09-21 20:42:31

SendBird仅在用户离线时才向其发送推送通知。

请确认您已向脱机用户发送消息。(例如,按下主页按钮使应用程序在后台运行,使其从SendBird脱机)

票数 0
EN

Stack Overflow用户

发布于 2019-08-29 17:01:55

对于那些在应用运行时没有收到推送通知,只有在用户离线的情况下才能收到推送通知的人,一旦用户连接到通过通道委托接收消息,您就必须为通道注册一个回调处理程序,然后您可以从那里进行本地推送通知:

代码语言:javascript
复制
class GroupChannelChattingViewController: UIViewController, SBDChannelDelegate {
    SBDMain.add(self as SBDChannelDelegate, identifier: self.delegateIdentifier)

    func channel(_ sender: SBDBaseChannel, didReceive message: SBDBaseMessage) {
        if message is SBDUserMessage {
            // Do something when the received message is a UserMessage.
        }
        else if message is SBDFileMessage {
            // Do something when the received message is a FileMessage.
        }
        else if message is SBDAdminMessage {
            // Do something when the received message is an AdminMessage.
        }
    }
}

这可以在here中找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39583076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档