0

我正在 Worklight 6 中开发一个混合应用程序,并尝试为我的 iOS 环境设置推送通知。我已经能够在我的 iOS 设备上成功订阅和接收推送通知。但是,当我尝试通过单击收到的推送通知打开应用程序时,我看到此错误:

TypeError:“未定义”不是对象(评估“registeredEventSources [pendindPushEvent.alias].callback”)

这似乎发生在我尝试连接到 Worklight 服务器以进行身份​​验证 (WL.Client.login) 并随后阻止执行任一登录回调之后。奇怪的是,它似乎引用的这个事件源回调确实被调用了。我传递给 WL.Client.Push.registerEventSourceCallback 的函数正在执行并正确显示通知 payload.msg。

注意:如果应用程序在没有推送通知的情况下打开,身份验证似乎工作得很好。

我无法在其他地方找到有关此错误的任何信息。任何人都可以对这个问题有所了解吗?

4

2 回答 2

1

看起来您需要为推送通知定义回调:

WL.Client.Push.registerEventSourceCallback(
            "myPush", 
            "PushAdapter", 
            "PushEventSource", 
            pushNotificationReceivedCallBack);

...

function pushNotificationReceivedCallBack(props, payload){
    alert("pushNotificationReceived invoked");
}

您可以仔细检查您在事件源中注册的回调函数吗?也许在“registerEventSourceCallback”调用中定义的函数和实际的函数实现之间存在拼写错误?

于 2013-10-28T20:10:13.787 回答
1

实际上,这是 IMO 的一个缺陷。它在 Android 中已修复,但在 iOS 中显然没有。我已经打开了一个关于它的缺陷。

于 2013-10-31T09:10:44.387 回答