使用OneSignal推送通知:什么意思是“无推送令牌”?

时间:2016-07-10 12:13:47

标签: ios push-notification onesignal

我正在使用OneSignal进行推送通知。

在订阅列表中,某些设备/用户标有No (No Push Token)。说明:This user has no push token and cannot be targeted.

适用于iOS devices以及Android devices

这是什么意思?为什么会这样?如何改变?

5 个答案:

答案 0 :(得分:1)

这意味着OneSignal没有从设备获得pushToken,但设备能够注册您的OneSignal帐户。在iOS上,pushToken被称为设备令牌,在Android上,这是Google注册ID。

根据您正在使用的OneSignal SDK,在调用OneSignal init以添加其他日志记录之前,可以调用setLogLevel函数。这将打印在iOS的Xcode日志或Android的adb logcat中。还要确保使用的是最新的OneSignal SDK。

您还可以在登录后通过页面底部的帮助提示与OneSignal联系,他们可以检查您的帐户以帮助诊断问题。

答案 1 :(得分:1)

确保您的Xcode项目已启用"Push Notifications" and "Remote notifications"

答案 2 :(得分:1)

你能检查一下"推送通知"能力是否开启?如果不是,请将其打开并查看是否有效,否则继续阅读。

确保您正在运行最新版本的OneSignal SDK(2.1.14) 因为这个版本应该已经解决了这个问题。接下来,尝试以下修复:

修复1

从导航面板中,选择您的顶级蓝色项目。然后选择目标并导航到“构建设置”。搜索其他链接器标志并添加以下条目:-ObjC

清理项目并再次运行,看它是否有效。

修复2

在您的桥接标题(如果有的话)或App Delegate可见的任何头文件中,为OneSignal类创建一个扩展,您可以在其中定义以下接口方法:

+ (void)didRegisterForRemoteNotifications:(UIApplication*)app deviceToken:(NSData*)inDeviceToken;

接下来,覆盖应用委托中的didRegisterForRemoteNotifications委托方法,并在OneSignal上调用上述方法,并将这两个参数传递给SDK。

答案 3 :(得分:1)

请注意,在XCode 8版本2.1.10中使用时,OneSignal SDK存在一个相当严重的缺陷,当使用Cocoapods包含该软件包时,导致iOS设备的这些No push token注册(推荐方法) 。确保更新您的广告连播。

请参阅release notes for 2.1.11

  

修正了2.1.10中的“无推送令牌”问题,当OneSignal通过CocoaPods下载并包含其他使用-ObjC标志的pod时会发生。

答案 4 :(得分:0)

正如其他答案所提到的,2.1.10中有一个CocoaPods设置的错误。所以我改变了

VS2010, Windows 10 OS and IE10

pod 'OneSignal' ## points to 2.1.10