0

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

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

正如文件所说:

如果您有一个完全脱机的应用程序,并且需要以独占方式脱机生成此注册处理程序,请设置 Main 属性 = False 和 Connectivity Support 属性 = Offline

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

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

在此处输入图像描述

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

谢谢,罗赫利奥·阿罗塞纳

4

2 回答 2

0

我通过在 Android 上创建一个外部对象以返回 One Signal Id 找到了另一种解决方案。代码是:

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

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

我们将不得不使用以下代码对 IOS 执行相同的操作:

OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState();

status.getSubscriptionStatus().getUserId();
于 2017-11-28T16:13:44.507 回答
0

罗杰里奥,

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

同时,您可以设置为 Connectivity Support = Online,这应该可以解决您的问题。

于 2017-11-24T16:49:47.927 回答