Pushplugin - 无法注册设备 (IOS)

Posted

技术标签:

【中文标题】Pushplugin - 无法注册设备 (IOS)【英文标题】:Pushplugin- Unable to register the device (IOS) 【发布时间】:2014-07-28 04:38:06 【问题描述】:

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

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

查看了debugging steps的以下链接

Plugin link

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

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 上运行吗?令人沮丧的是,这个插件没有社区支持。

任何想法。

【问题讨论】:

我也面临同样的问题。你解决问题了吗?! 官方插件不工作。将此github.com/dfilip/PushPlugin 用于 IOS8 功能。 【参考方案1】:

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

    处理证书。 Tutorial 注册并获取令牌。 Tutorial 使用 NSUserDefaults 存储令牌。 通过使用 JS 桥创建自定义插件,创建自定义插件并将令牌从 Objective-c 传递到 javascript。 Tutorial

【讨论】:

以上是关于Pushplugin - 无法注册设备 (IOS)的主要内容,如果未能解决你的问题,请参考以下文章

cordova pushplugin 无法在 iOS 中获取设备令牌

PushPlugin 不注册设备并在 onNotificationGCM 上返回 regid

iOS PushPlugin Cordova 注册问题

Phonegap PushPlugin 无法接收通知 ios

打开应用程序(ios,PushPlugin)时 tokenHandler() 不会触发,必须最小化应用程序然后重新打开它以触发事件

无法为推送通知注册设备 (iOS8)