java.lang.IllegalStateException: Object NotificationsRegistrationHandler 仅支持 OFFLINE 但正在通过 RemoteApplicationServer 调用

java.lang.IllegalStateException: Object NotificationsRegistrationHandler only supports OFFLINE but is being called via RemoteApplicationServer

在应用程序启动时执行过程 NotificationsRegistrationHandler 时出现此错误。

java.lang.IllegalStateException: Object NotificationsRegistrationHandler only supports OFFLINE but is being called via RemoteApplicationServer

如文档所述:

If you have a completely offline application and you need this Registration Handler procedure to be generated offline exclusively, set Main property = False and Connectivity Support property = Offline

我已设置我的主要 SD 对象注册处理程序 属性 以使用此程序。

我还在过程 NotificationsRegistrationHandler 上设置了以下属性:

我的代码或配置有什么问题?

谢谢, 罗赫里奥·阿罗塞梅纳

罗杰里奥,

我认为这可能是离线模式的问题。我们可以检查一下。

同时,您可以设置连接支持 = 在线,这应该可以解决您的问题。

我通过在 Android 到 return 一个信号 ID 上创建外部对象找到了替代解决方案。代码是:

OneSignal.idsAvailable(new OneSignal.IdsAvailableHandler() {
@Override
public void idsAvailable(String userId, String registrationId) {
try{
return userId;
}catch(Exception e){                    
e.printStackTrace();
return "";
}
}
});

One Signal 上的设备注册在 SD 应用程序上正常。问题是过程 NotificationRegistrationHandler 从未执行过(离线或在线),因此我们无法将 DeviceToken 存储在 table.

我们必须使用以下代码对 IOS 执行相同的操作:

OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState();

status.getSubscriptionStatus().getUserId();