首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静默推送只有在第二次推送到来时才能正常工作(app在后台)

静默推送只有在第二次推送到来时才能正常工作(app在后台)
EN

Stack Overflow用户
提问于 2016-12-26 15:31:30
回答 0查看 77关注 0票数 0

静默推送通知在前台应用处于活动状态时正常工作

代码语言:javascript
复制
2016-12-26 15:06:17.793051 App[] didReceive in BG!!!
2016-12-26 15:06:17.932569 App[] Connected!
2016-12-26 15:06:17.936581 App[] Subscribed!
2016-12-26 15:06:17.938355 App[] received:Hello World , in:/topic/state

当应用程序在background.It中运行时会卡住

代码语言:javascript
复制
2016-12-26 15:06:22.674577 App[] applicationWillResignActive
2016-12-26 15:06:23.228441 App[] applicationDidEnterBackground

第一个静默推送到达,它被困在这里:

代码语言:javascript
复制
2016-12-26 15:06:30.642825 App[] didReceive in BG!!! //first push code
2016-12-26 15:06:31.842432 App[] Connected!  //first push code
2016-12-26 15:06:31.843643 App[] Subscribed!  //first push code

当第二次静默推流到达时,显示第一次推流result..and再次卡住.....

代码语言:javascript
复制
2016-12-26 15:06:41.713718 App[] received:Hello World , in:/topic/state  //first push result
2016-12-26 15:06:41.740015 App[] didReceive in BG!!!  //second push
2016-12-26 15:06:42.911593 App[] Connected!  //second push
2016-12-26 15:06:42.913403 App[] Subscribed!  //second push

我在Appdelegate中的实现代码

代码语言:javascript
复制
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    NSLog("didReceive in BG!!!" )
    application.delegate = self
    mqttSession = MQTTSession(host: "192.168.159.110", port: 1883, clientID: "swift", cleanSession: true, keepAlive: 5, useSSL: false)
    mqttSession.username = "bucky"
    mqttSession.password = "bucky"
    mqttSession.delegate = self

        mqttSession.connect { (succeeded, error) -> Void in
            if succeeded {
                NSLog("Connected!")

            }
        }
    completionHandler(.newData)
}

MQTT委托方法

代码语言:javascript
复制
func mqttDidReceive(message data: Data, in topic: String, from session: MQTTSession) {
    let stringData = String(data: data, encoding: .utf8)
    NSLog("received:%@ , in:%@", stringData ?? "12345", topic)                        
    }
}
EN

回答

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

https://stackoverflow.com/questions/41327895

复制
相关文章

相似问题

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