Weex iOS 接入信鸽消息推送 SDK

文章目录

    信鸽 iOS SDK 接入文档 http://docs.developer.qq.com/xg/iosjie-ru.html

    文档写的非常垃圾,需要参考 demo 代码才能明白具体的细节 (AppDelegate.m)

    测试时不要使用 demo 中默认的账号 “myAccount”

    否则会报错

    2017-07-23 11:05:01.694235+0800 WeexDemo[5310:1996359] [xgpush info]msgLen's length is 11
    2017-07-23 11:05:01.694374+0800 WeexDemo[5310:1996359] [xgpush warning!]rspCode is 47
    2017-07-23 11:05:01.694445+0800 WeexDemo[5310:1996161] [XGDemo] register push error
    

    真是日了狗,47这个错误码居然在信鸽的错误码文档中找不到!

    只需要将 accout 修改成其他的字符串即可,例如

    NSString *deviceTokenStr = [XGPush registerDevice:deviceToken account:@"sunzhongwei" successCallback:^{
    

    iOS 10 上无法收到推送消息

    在信鸽的 web 管理后台推送了几条测试消息,但是都没有接收到。那一刻,我真的慌了。。。

    XCode 里,毛的相关调试信息也没有。回想了一下,好像没有逻辑处理接收到的消息,于是把 demo 中的如下代码 copy 了过去。

    // iOS 10 新增 API
    // iOS 10 会走新 API, iOS 10 以前会走到老 API
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
    // App 用户点击通知的回调
    // 无论本地推送还是远程推送都会走这个回调
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler {
        NSLog(@"[XGDemo] click notification");
        [XGPush handleReceiveNotification:response.notification.request.content.userInfo
        successCallback:^{
         	NSLog(@"[XGDemo] Handle receive success");
     	} errorCallback:^{
         	NSLog(@"[XGDemo] Handle receive error");
     	}];
    
        completionHandler();
    }
    
    // App 在前台弹通知需要调用这个接口
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
    
        completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);
    }
    

    终于可以收到消息啦!!!

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式