0

我正在使用 Phonegap Pushplugin 进行推送通知。在两种方法中都添加了日志。didRegisterForRemoteNotificationsWithDeviceToken方法从未被执行。它甚至没有失败didFailToRegisterForRemoteNotificationsWithError。不知道这里有什么问题。

我将 IOS 分发证书(不是 APN)上传到 steroids 构建服务,并将 APN Prod 配置文件上传到 AdHoc 构建。我收到推送通知的提示,我可以看到我的应用程序启用了通知。问题是,我没有得到令牌。

查看了以下链接的调试步骤

插件链接

我正在使用以下代码进行注册。

function registerDevice(){
    var pushNotification = window.plugins.pushNotification;
    pushNotification.register(
                              tokenHandler,
                              errorHandler, {
                                  "badge":"true",
                                  "sound":"true",
                                  "alert":"true",
                                  "ecb":"onNotificationAPN"
                              });
}

var onNotificationAPN = function(event) {
    var pushNotification = window.plugins.pushNotification;

    if ( event.alert )
    {
        navigator.notification.alert(event.alert);
    }

    if ( event.sound )
    {
        var snd = new Media(event.sound);
        snd.play();
    }

    if ( event.badge )
    {
        pushNotification.setApplicationIconBadgeNumber(successHandler, errorHandler,
                                                       event.badge);
    }
}

function tokenHandler (result) {
    steroids.logger.log("Tokenhandler called with result");
    steroids.logger.log(result);

    alert(result);

}

function errorHandler (error) {
    steroids.logger.log("errorHandler called with result");
    steroids.logger.log(error);
    alert('error = ' + error);
}

任何帮助表示赞赏。

更新 - 2014 年 7 月 30 日

我下载了 PersistentConnectionLogging.mobilecondig 并且能够看到生成的令牌。我能够使用此令牌向我的手机发送通知。

tokenHandler 和 onNotificationAPN 仍然没有被解雇。问题显然在 Cordova 方面或在我的 Javascript 中。

这个插件甚至可以在 Cordova 3.1/3.5 上运行吗?令人沮丧的是,这个插件没有社区支持。

有任何想法吗。

4

1 回答 1

0

这是我实现推送通知的方式:

  1. 办理证件。教程
  2. 注册并获取令牌。教程
  3. 使用 NSUserDefaults 存储令牌。
  4. 通过使用 JS 桥创建自定义插件,创建自定义插件并将令牌从 Objective-c 传递到 javascript。教程
于 2014-10-02T12:38:01.723 回答