我开发了一个使用推送通知的应用程序。在Android上,我从pushRegistered(String deviceId)方法接收deviceId,而推送通知的效果很好。在iOS上,它不起作用。 我的iOS证书包含includePush = true,在构建提示中包含includePush = true。当我运行应用程序时,pushRegistered(String deviceId),pushRegistrationError(String error,int errorCode)方法无济于事。下面是测试代码。我应该怎么做/检查以接收deviceId?
@Override
public void registeredForPush(String deviceId) {
this.deviceId = "registered id: " + deviceId; //TODO delete
new DLG02GeneralInfo("PUSH REGISTRATION", "deviceId: " + deviceId, "OK", null).show();
}
@Override
public void pushRegistrationError(String error, int errorCode) {
new DLG02GeneralInfo("PUSH REGISTRATION ERROR", "error: " + error + " errorCode: " + errorCode , "OK", null).show();
}
答案 0 :(得分:1)
我发现了问题所在。为了使iOS应用程序能够注册用于推送通知的设备,需要在主类的start()
方法中添加以下代码行:
Display.getInstance().callSerially(() -> Display.getInstance().registerPush());
Android通知无需该行代码即可工作。
答案 1 :(得分:0)
如果调用registeredForPush
,一切都应该很好。但是您不应该使用deviceId
。使用Push.getPushKey()
,一旦调用registeredForPush
,它应返回有效结果。