解析:无法从控制台接收通知
Parse: Cannot receive notifications from Console
我正在努力使用解析控制台让推送通知在 iOS 上工作。我的 phone.
什么也没收到
当我从控制台发送时,它显示 "This will be sent to 2 devices"。
TARGETING
deviceType is "ios"
SENDING TIME
January 20th, 2015 at 6:27 PM
EXPIRATION
None
FULL TARGET
{ "deviceType": "ios" }
FULL DATA
{ "alert": "Hello", "sound": "default" }
我已经检查、重新检查并重试:
- https://parse.com/tutorials/ios-push-notifications
- https://parse.com/docs/push_guide#troubleshooting/iOS
- developer.apple.com - ConfiguringPushNotifications
- Parse 应用程序名称中只有 Ascii
- 尝试了开发和生产证书以及通过 iTunes 临时安装的证书。
- App Bundle 标识符在解析、xcode 和配置文件中是相同的。
- 正在重新生成具有不同捆绑包标识符的证书、配置文件。
- 正在 Xcode 中刷新帐户,重新启动并清理构建。
- 使用正确的配置文件
- 尝试在 "Released in Production" 上打开和关闭解析设置发送,同时上传两个证书。
- iOS 代码取自解析示例,在 _Installations 中我得到一个 deviceToken。
使用 NWPusher 我可以使用我上传的相同证书(沙盒)向应用程序发送推送。这样可以进一步排除证书作为错误来源。
Parse 文档中的实现方法:
AppDeligate.m
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error;
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
我还能做什么?
使用控制台,您可以使用 JSON 明确请求具有自定义属性的负载。首先确保它的语法正确。查看 Parse's Documentation,您可以看到与您的目标设备相关的内容。如果您严格地从网站控制台发送推送,那么您可以分段发送推送,在构建推送时以 iOS 为目标,然后在 "Write Your Message" 中将负载类型切换为 json 作为反对纯文本并包含以下内容或类似内容,从控制台发送时不必在有效负载中包含 iOS :
{ "aps":
{ "alert": “New post published!",
"badge": 1,
"sound": "ding.wav"
},
"acme1": "bar", "acme2": 42
}
注意: 您可能必须包含 content-available
待定兼容性。
您可以查看 Documentation 以参考 'bar' 和“42”。
根据您提供的信息,您的设置看起来不错,所以希望这只是一个快速的语法修复。如果它声明它正在发送到 2 个设备,那么您显然已经完成了设置正义,由于后端知道这些设备已成功同意推送通知,因此该过程已完成。
请实现此委托方法并显示字典数据:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
您将在字典中看到所有信息
在 _Installation
中,pushType
没有设置为正确的值 apns
。
我正在努力使用解析控制台让推送通知在 iOS 上工作。我的 phone.
什么也没收到当我从控制台发送时,它显示 "This will be sent to 2 devices"。
TARGETING
deviceType is "ios"
SENDING TIME
January 20th, 2015 at 6:27 PM
EXPIRATION
None
FULL TARGET
{ "deviceType": "ios" }
FULL DATA
{ "alert": "Hello", "sound": "default" }
我已经检查、重新检查并重试:
- https://parse.com/tutorials/ios-push-notifications
- https://parse.com/docs/push_guide#troubleshooting/iOS
- developer.apple.com - ConfiguringPushNotifications
- Parse 应用程序名称中只有 Ascii
- 尝试了开发和生产证书以及通过 iTunes 临时安装的证书。
- App Bundle 标识符在解析、xcode 和配置文件中是相同的。
- 正在重新生成具有不同捆绑包标识符的证书、配置文件。
- 正在 Xcode 中刷新帐户,重新启动并清理构建。
- 使用正确的配置文件
- 尝试在 "Released in Production" 上打开和关闭解析设置发送,同时上传两个证书。
- iOS 代码取自解析示例,在 _Installations 中我得到一个 deviceToken。
使用 NWPusher 我可以使用我上传的相同证书(沙盒)向应用程序发送推送。这样可以进一步排除证书作为错误来源。
Parse 文档中的实现方法:
AppDeligate.m
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error;
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
我还能做什么?
使用控制台,您可以使用 JSON 明确请求具有自定义属性的负载。首先确保它的语法正确。查看 Parse's Documentation,您可以看到与您的目标设备相关的内容。如果您严格地从网站控制台发送推送,那么您可以分段发送推送,在构建推送时以 iOS 为目标,然后在 "Write Your Message" 中将负载类型切换为 json 作为反对纯文本并包含以下内容或类似内容,从控制台发送时不必在有效负载中包含 iOS :
{ "aps":
{ "alert": “New post published!",
"badge": 1,
"sound": "ding.wav"
},
"acme1": "bar", "acme2": 42
}
注意: 您可能必须包含 content-available
待定兼容性。
您可以查看 Documentation 以参考 'bar' 和“42”。
根据您提供的信息,您的设置看起来不错,所以希望这只是一个快速的语法修复。如果它声明它正在发送到 2 个设备,那么您显然已经完成了设置正义,由于后端知道这些设备已成功同意推送通知,因此该过程已完成。
请实现此委托方法并显示字典数据:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
您将在字典中看到所有信息
在 _Installation
中,pushType
没有设置为正确的值 apns
。