2013-10-17 14 views
1

我正在使用IBM Worklight 6.0.0並在iOS 7設備上進行測試。IBM Worklight - 無法使用現有別名註冊到事件源回調。別名已用於事件源

我有以下的JS錯誤:

Cannot register to event source callback with an existing alias: 'myPush'. The alias is already in use for event source 'PushEventSource'. 

在設備上,當我登錄,註銷,然後重新登錄。 (錯誤出現在第二次)

在客戶端,我的代碼是:

if (WL.Client.Push){ 
    WL.Client.Push.onReadyToSubscribe = function(){ 
     WL.Logger.debug("onReadyToSubscribe"); 
     WL.Client.Push.registerEventSourceCallback(
       "myPush", 
       "PushAdapter", 
       "PushEventSource", 
       pushNotificationReceived); 
     if (isPushSubscribed() == false) { 
      doSubscribe(); 
     } 
    }; 
} 

有什麼錯我的代碼?

是因爲我應該只調用一次「WL.Client.Push.registerEventSourceCallback」嗎?

任何其他解決方案?

回答

3

錯誤消息顯示您不允許多次註冊一個別名。該錯誤並不是有害的,因爲無論錯誤消息是什麼,您仍然可以收到推送通知(您可能需要對此進行測試)。

如果要避免錯誤信息,你有兩個選擇:

  1. 確保調用WL.Client.Push.registerEventSourceCallback 是每個應用會話只調用一次,無論與否 用戶已註銷。

  2. 請對WL.Client.Push.unsubscribe來電時,用戶註銷,以 清除別名到事件源的結合。

我建議去選擇1.推送通知綁定到設備,而不是用戶。除非您打算更改不同用戶的事件源別名,否則取消訂閱沒有意義。