2016-12-09 26 views
1

我最近更新了最新版本的bms-push cordova插件。使用cordova bms-push插件時,無法在unregisterDevice後執行registerDevice

我注意到一個奇怪的行爲,當試圖使用插件的unregisterDevice功能。當調用這個函數時,看起來好像不可能在事後執行registerDevice。當調用registerDevice函數時,既不會觸發成功回調也不會觸發失敗回調。

此問題僅在iOS上觀察到。

任何想法在這裏可能是錯誤的?

+0

我目前正在重建。 – joe

回答

1

我能夠註冊並使用此代碼註銷幾次:

/* 
* Licensed to the Apache Software Foundation (ASF) under one 
* or more contributor license agreements. See the NOTICE file 
* distributed with this work for additional information 
* regarding copyright ownership. The ASF licenses this file 
* to you under the Apache License, Version 2.0 (the 
* "License"); you may not use this file except in compliance 
* with the License. You may obtain a copy of the License at 
* 
* http://www.apache.org/licenses/LICENSE-2.0 
* 
* Unless required by applicable law or agreed to in writing, 
* software distributed under the License is distributed on an 
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
* KIND, either express or implied. See the License for the 
* specific language governing permissions and limitations 
* under the License. 
*/ 

var app = { 
    // Application Constructor 
    initialize: function() { 
     document.addEventListener('deviceready', this.onDeviceReady.bind(this), false); 
    }, 

    // deviceready Event Handler 
    // 
    // Bind any cordova events here. Common events are: 
    // 'pause', 'resume', etc. 
    onDeviceReady: function() { 
     this.receivedEvent('deviceready'); 
     var appGUID = "MY APP GUID"; 
     var clientSecret = "MY CLIENT SECRET"; 

     BMSClient.initialize(BMSClient.REGION_US_SOUTH); 
     BMSPush.initialize(appGUID,clientSecret); 

     var failure = function(failureResponse) { 
      alert("Failed: " + failureResponse); 
     }; 

     var success = function(response) { 
      alert("Success: " + response); 
     }; 

     var firstSuccess = function(successResponse) { 
      BMSPush.unregisterDevice(secondSuccess, failure) 
     }; 

     var secondSuccess = function(successResponse) { 
      BMSPush.registerDevice({"userId":"you"}, thirdSuccess, failure); 
     }; 

     var thirdSuccess = function(successResponse) { 
      BMSPush.unregisterDevice(fourthSuccess, failure) 
     }; 

     var fourthSuccess = function(successResponse) { 
      BMSPush.registerDevice({"userId":"you"}, fifthSuccess, failure); 
     }; 

     var fifthSuccess = function(successResponse) { 
      alert("Third success: " + successResponse); 
     }; 

     BMSPush.registerDevice({"userId":"you"}, firstSuccess, failure); 
    }, 

    registerNotificationsCallback: function() { 
     var showNotification = function(notif) { 
      alert(JSON.stringify(notif)); 
     }; 

     BMSPush.registerNotificationsCallback(showNotification); 
    }, 

    receivedEvent: function(id) { 
     var parentElement = document.getElementById(id); 
     var listeningElement = parentElement.querySelector('.listening'); 
     var receivedElement = parentElement.querySelector('.received'); 

     listeningElement.setAttribute('style', 'display:none;'); 
     receivedElement.setAttribute('style', 'display:block;'); 

     console.log('Received Event: ' + id); 
    } 
}; 

app.initialize(); 
相關問題