2016-12-09 6 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(); 
関連する問題