HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了当应用程序进入后台状态iOS 8时,Pubnub连接停止大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
标题说明了一切.
我在pubnub论坛上看过这个 questionhere(同样的问题,只是不同的建议).

该问题的核心是,一旦应用程序暂停,pubnub连接就会排队,直到应用程序返回到前台才会发送.发送通知说你在你频道的后台进行但是它不起作用似乎是一件合理的事情.

从我的阅读中我了解到pubnub使用websockets并且在后台模式下不允许这样做.甚至尝试将VOIP作为后台模式启用但没有运气但位置更新bg模式有效.但是,使用此功能会导致我的应用被拒绝,因为我不使用位置服务.

运行此代码

- (void)applicationDidEnterBACkground:(UIApplication *)application {

    [PubNub sendmessage:@"Hello from PubNub iOS!" tochAnnel:self.myChAnnel;
}

我从pubnub获取此日志条目(所以至少我知道命令已运行):

Looks like the client suspended"; Fix suggestion="Make sure that your application is configured to run persistently in BACkground

我一直在为此而自杀.有一天,你开始做一些你认为非常简单的事情,一个15分钟的事情,它变成了一个沮丧的一天……你知道我的意思:)

解决方法

当应用程序即将进入后台时,我实际上能够发送我需要的消息.并且不启用任何后台模式.

我利用了背景有限任务,正如tutorial所解释的那样.

- (void)applicationWillResignActive:(UIApplication *)application {

    [PubNub updateClientState:@"MyID" state:@{@"appState":@"BACkground",@"userNickname":@"MyNickname"} forObject:[PNChAnnel chAnnelWithName:@"MyChAnnel"]];

    self.BACkgroundTask = [[UIApplication sharedApplication] beginBACkgroundTaskWithExpirationHandler:^{
        NSLog(@"BACkground handler called. Not running BACkground tasks anymore.");
        [[UIApplication sharedApplication] endBACkgroundTask:self.BACkgroundTask];
        self.BACkgroundTask = UIBACkgroundTaskInvalid;
    }];

}

并在重新上线时实施停止背景

- (void)applicationDidBecomeActive:(UIApplication *)application {

    if (self.BACkgroundTask != UIBACkgroundTaskInvalid)
    {
        [[UIApplication sharedApplication] endBACkgroundTask:self.BACkgroundTask];
        self.BACkgroundTask = UIBACkgroundTaskInvalid;
        NSLog(@"Task invalidated");
    }
}

大佬总结

以上是大佬教程为你收集整理的当应用程序进入后台状态iOS 8时,Pubnub连接停止全部内容,希望文章能够帮你解决当应用程序进入后台状态iOS 8时,Pubnub连接停止所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。