react-native 集成阿里云推送的问题
App需要集成推送的功能,由于不太懂原生ios
,导致遇到问题不知道如何排查问题。
我在阿里云官网注册了移动推送服务,并且创建了应用,拿到了appKey和appSecret
。也配置上传了推送证书,按照react-native-aliyun-push
添加了相应的代码。但是推送的时候还是提示无apns token
,推送失败。模拟器、真机下都不行。
开发环境:
"react": "17.0.1",
"react-native": "0.64.0",
"react-native-aliyun-push": "^1.0.22",
"xcode": "12"
看阿里云的官网解释说无apns token
可能是证书不对,但是我是按照阿里云官网说明配置的推送证书,应该是没有错。然后说是有可能推送通道没有初始化成功,但是不知道怎么验证初始化有没有成功。没看到哪里有输出错误日志,应该是没有初始化化成功。
这是Appdelegate.m
文件的配置代码
#import "AppDelegate.h"
#import "AliyunPushManager.h"
#import "RNSplashScreen.h"
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self.window makeKeyAndVisible];
[RNSplashScreen show];
//AliyunPush apikey and apisecret
[[AliyunPushManager sharedInstance] setParams:@"333439311"
appSecret:@"8e3d37e16c7641e79d98832eb53b7715"
lauchOptions:launchOptions
createNotificationCategoryHandler:^{
//create customize notification category here
}];
return YES;
}
// 下面是为AliyunPush添加的代码
// APNs注册成功回调,将返回的deviceToken上传到CloudPush服务器
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[[AliyunPushManager sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
// APNs注册失败回调
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[[AliyunPushManager sharedInstance] application:application didFailToRegisterForRemoteNotificationsWithError:error];
}
// 打开/删除通知回调
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
[[AliyunPushManager sharedInstance] application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
}
// 请求注册设定后,回调
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
[[AliyunPushManager sharedInstance] application:application didRegisterUserNotificationSettings:notificationSettings];
}
// 添加结束
react-native-aliyun-push
的`readme里有这么一句话
但是我添加了之后项目就编译不了,不知道是不是因为RN是最新的版本的不需要添加这个
我把xcode里的日志调试出来了,从下面的第一张图可以看出来模拟器是不支持远程推送的,然后从第二张图可以看出来推送通道应该是初始化成功了,因为"APNS注册失败的回调执行了"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
需要这里配置一下: