Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native Can';无法在react native中获取iOS推送通知设备令牌_React Native_React Native Ios - Fatal编程技术网

React native Can';无法在react native中获取iOS推送通知设备令牌

React native Can';无法在react native中获取iOS推送通知设备令牌,react-native,react-native-ios,React Native,React Native Ios,我提到获取设备令牌,以便向我的应用程序发送推送通知。我使用create react native app创建了我的应用程序。代码如下: import React,{Component}来自'React'; 进口{ 平台, 样式表, 评估学, 文本, 看法 推送通知 }从“反应本机”; 类型Props={}; 导出默认类Apptitude扩展组件{ 构造函数(){ log('在启动板中注册evt侦听器') PushNotificationIOS.addEventLister('寄存器',(令牌)=

我提到获取设备令牌,以便向我的应用程序发送推送通知。我使用
create react native app
创建了我的应用程序。代码如下:

import React,{Component}来自'React';
进口{
平台,
样式表,
评估学,
文本,
看法
推送通知
}从“反应本机”;
类型Props={};
导出默认类Apptitude扩展组件{
构造函数(){
log('在启动板中注册evt侦听器')
PushNotificationIOS.addEventLister('寄存器',(令牌)=>{
这是我的国家({
deviceToken:令牌
})
});
}
render(){
返回(
);
}
}
PushNotificationIOS.addEventListener('registrationError',(registrationError)=>{
console.lo('was error')
console.log(reason.message)
console.log(原因代码)
console.log(reason.details)
})
//是的,我知道我也在构造函数中添加了一个事件侦听器。这两种回调都不起作用
PushNotificationIOS.addEventListener('寄存器',(令牌)=>{
log('这是令牌',令牌);
});
console.log('请求权限')
PushNotificationIOS.requestPermissions();

问题是,
寄存器
注册错误
事件从不触发。系统会提示我批准权限,下次启动应用程序时,我可以使用
checkPermissions()
并确认已授予权限。但是如果没有设备令牌,就不可能向设备发送推送通知。我做错了什么?

Xcode部分怎么样

您应该在AppDelegate文件上导入TCTPushNotification

#导入
并执行以下代码以启用应用程序中的
通知
注册

//需要注册通知
-(void)应用程序:(UIApplication*)应用程序didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings
{
[RCTPushNotificationManager didRegisterUserNotificationSettings:notificationSettings];
}
//注册事件所需。
-(无效)应用程序:(UIApplication*)应用程序DIdRegisterForRemotionTificationswithDeviceToken:(NSData*)deviceToken
{
[RCTPushNotificationManager未注册设备通话:设备通话];
}
//通知事件所需的。处理远程通知后,必须调用完成处理程序。
-(无效)应用程序:(UIApplication*)应用程序DidReceiveMemotentification:(NSDictionary*)用户信息
fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler
{
[RCTPushNotificationManager DidReceiveEmoteNotification:userInfo fetchCompletionHandler:completionHandler];
}
//registrationError事件所需。
-(无效)应用程序:(UIApplication*)应用程序未能注册远程通知,错误为:(N错误*)错误
{
[RCTPushNotificationManager未能注册远程通知,错误:错误];
}
//localNotification事件所需。
-(无效)应用程序:(UIApplication*)应用程序未收到本地通知:(UILocalNotification*)通知
{
[RCTPushNotificationManager确实收到本地通知:通知];
}
有关更多信息,请使用官方文档


另一件需要注意的事情是,在模拟器上,没有启动
onRegister
函数,您必须使用真实的设备。

为了防止任何人与我的设备有类似的问题,这是在真实的设备上发生的,关键是注册事件,然后专门调用
PushNotificationIOS.requestPermissions()在注册事件之后

我导入了标题,但没有导入其余内容。如果您在
寄存器中有
addEventLister
而不是
addEventListener
,请感谢。所以注意复制粘贴从这个!!