IBM MobileFirst 6.3 在应用程序启动时触发推送事件源回调

Posted

技术标签:

【中文标题】IBM MobileFirst 6.3 在应用程序启动时触发推送事件源回调【英文标题】:IBM MobileFirst 6.3 Firing Push Event Source Callback on app startup 【发布时间】:2015-02-19 16:25:30 【问题描述】:

我想知道什么时候建议打电话

WL.Client.Push.registerEventSourceCallback

如果我们在应用关闭时通过点击推送通知打开应用时可以调用回调。

当我检查http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Client.Push.html?cp=SSZH4A_6.2.0%2F10-0-0-1-8 ,我会读

iosandroid 注册一个回调方法,只要有 通知从指定的事件源到达。如果 通知在应用程序未运行时到达,移动 操作系统在指定的回调处启动应用程序

我从这里了解到的是应用程序可以在启动时调用推送通知回调(当它关闭时)。

但是当我检查https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-6-3/notifications/push-notifications-hybrid-applications/时,我可以阅读

如果应用程序在推送时处于后台模式(或非活动状态) 通知到达时,调用此回调函数 应用程序返回前台。

我的理解是启动时不会触发推送回调。

哪个页面是正确的,如果可以在应用启动时调用事件源回调,是否有任何示例?

【问题讨论】:

“我的理解是启动时不会触发推送回调。”。我不认为这是正确的。该链接表示回调函数 is 在启动时调用。为什么你认为不是? 可能结论是错误的,但该声明仅讨论应用程序在后台并返回前台的情况。我的问题是关于应用程序关闭(不在后台)的情况 公平点。不过,我认为这两种情况下的行为是相同的。我认为这应该很快就能得到验证。 @AndrewFerrier 我验证并确认行为是相同的。让我感到困惑的是,回调不是在启动时直接触发,而是在身份验证后触发,这是正确的做法。 对我来说这听起来像是正确的行为。您确实需要对框架进行身份验证,以验证您有权接收推送通知内容 - 它与用户以及设备相关联。 【参考方案1】:

对我来说这听起来并不矛盾。

当应用关闭时,在启动时调用回调。 当应用打开(在后台)并返回到前台时,它会在应用返回到前台时调用。

【讨论】:

在这种情况下,我们应该何时调用 WL.Client.Push.registerEventSourceCallback ?我试图在 wlCommonInit() 中调用它,但它不起作用。 @idan Adar:有没有办法在应用程序关闭/杀死时获取事件?每当 Internet 连接发生变化时,我都会发送一个事件。【参考方案2】:

经过测试和调试,我可以确认即使应用程序关闭,它也可以正常工作。 认证后调用事件源回调。

关于我什么时候推荐注册回调函数的问题,应该是在应用程序准备好订阅推送的时候,就像IBM提供的示例中一样:

if (WL.Client.Push)    
    WL.Client.Push.onReadyToSubscribe = function() 
        alert("onReadyToSubscribe");

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

【讨论】:

以上是关于IBM MobileFirst 6.3 在应用程序启动时触发推送事件源回调的主要内容,如果未能解决你的问题,请参考以下文章

IBM MobileFirst 6.3 在应用程序启动时触发推送事件源回调

无法在 IBM MobileFirst 6.3 中调用 window.plugins

IBM MobileFirst 6.3 异步 API

修复 WP 弹跳 IBM MobileFirst 6.3

运行 IBM MobileFirst 6.3 CLI 时无法检索 NativeApplicationBuilder

IBM MobileFirst 6.3:无法获取 JMX 连接以访问 MBean