Weex iOS 接入信鸽消息推送 SDK

更新日期: 2017-07-23 阅读次数: 8464 分类: weex

信鸽 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 聊聊, 查看更多联系方式