首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cordova bms-push插件时,无法在unregisterDevice之后执行registerDevice

使用cordova bms-push插件时,无法在unregisterDevice之后执行registerDevice
EN

Stack Overflow用户
提问于 2016-12-10 00:36:30
回答 1查看 108关注 0票数 0

我最近更新到了最新版本的bms-push cordova插件。

当我尝试使用插件的unregisterDevice函数时,我注意到一个奇怪的行为。当调用此函数时,似乎不可能在之后执行registerDevice。调用registerDevice函数时,既不会触发成功回调,也不会触发失败回调。

仅在iOS上观察到此问题。

你知道这里会出什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-14 04:52:29

我可以使用下面的代码多次注册和注销:

代码语言:javascript
复制
/*
 * 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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41064977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档