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