iOS利用极光自定义消息推送app前台页面接收,无socket。

项目中有个场景,app传一图片给服务器,服务器对图片运算后返回一个结果给app,可是app并不知道服务器要运算多久,可能1秒可能5秒可能20秒,服务器也不支持socket通信。
当时想到了两个方案。
app每隔几秒(比如2秒)就请求一次服务器接口,30秒内如果拿到想要的结果就停止请求,超过30秒也停止请求。但是觉得比较麻烦和不靠谱。

本身app就集成了极光推送,于是就有了通过发送自定义消息的方案。
即app上传完图片后就弹hud等待,服务器处理完后那边调用一下极光的接口,然后就给app发送自定义消息。

以下是传图片的类的部分代码
主要是注册通知

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setUpUI];
    // 注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(networkDidReceiveMessage:)
                                                 name:kJPFNetworkDidReceiveMessageNotification
                                               object:nil];
}

接受到自定义消息后

// 接收到通知事件
- (void)networkDidReceiveMessage:(NSNotification *)notification {

    NSDictionary *userInfo = [notification userInfo];
    NSLog(@"%@",userInfo);
  //自定义消息就存在这个userInfo中
  //这里就写收到自定义消息后的处理代码
}

记得移除通知

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    //移除通知
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kJPFNetworkDidReceiveMessageNotification object:nil];
}

这是测试结果
在极光推送的网页上可以推送测试消息
我这里是靠registrationID来指定推送设备的,registrationID在集成极光推送后会有极光SDK自动生成

Paste_Image.png

可选字段就可以用来传消息内容了


Paste_Image.png

在app调试时收到的消息结构就是这样

Paste_Image.png
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,208评论 25 708
  • 极光推送: 1.JPush当前版本是1.8.2,其SDK的开发除了正常的功能完善和扩展外也紧随苹果官方的步伐,SD...
    Isspace阅读 6,935评论 10 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,103评论 19 139
  • 每个人身上都有特定的磁场。 如果每个人磁场都被编码了,那心脏就是读取这些编码的器官。它总是能第一时间感应到那个最匹...
    消失的书店阅读 792评论 4 1
  • 2017年11月21日 星期二 晴 因要休两天班,所以今天把能干的工作全部干完。这几天光看李云哲到家就...
    云哲云灿妈妈阅读 235评论 0 0

友情链接更多精彩内容