如何使用Urban Airship插件检索Phonegap Android应用程序中的API

时间:2013-11-27 17:12:06

标签: android cordova urbanairship.com

我正在尝试在Android手机差距应用程序中实现Urban Airship。我正在使用github上的Urban Airship Phone Gap插件。我知道Urban Airship成功注册该设备是因为:

  1. 在LogCat中告诉我
  2. 该设备出现在我的Urban Airship设备中,我可以推送它
  3. 我也能像这样挂钩urbanairship.push事件:

    document.addEventListener("urbanairship.push", handleIncomingPush, false)
    function handleIncomingPush(event) {
          if(event.message) {
            console.log("Incoming push: " + event.message)
          } else {
            console.log("No incoming message")
          }
        }
    

    但出于某种原因,urbanairship.registration事件未触发。这是我的代码:

    document.addEventListener("urbanairship.registration", onRegistration, false)
    function onRegistration(event)  {
          if (!event.error) {
            console.log("Reg Success: " + event.pushID)
          } else {
            console.log('push registration error: ' + event.error)
          }
        }
    

    我需要这个才能解雇,所以我可以将设备的APID保存在我的后端。这两个都在我的onDeviceReady回调中。

2 个答案:

答案 0 :(得分:0)

该插件似乎与Cordova 3.0.0不太兼容。我升级到Cordova 3.1.0(cordova-3.1.0.jar)并将我的Urban Airship应用程序改为生产而不是开发,并且它有效。

答案 1 :(得分:0)

我查看了UA的PhoneGap Push插件的源代码,它有一个可以检索你的APID的功能。

deviceready触发后,请使用以下内容来检索您的APID -

PushNotification.enablePush(function() {
    console.log('push has been enabled');
    PushNotification.getPushID(function(apid) {
        console.log('got push apid, apid: ' + apid);
    });
});

我知道这肯定可以帮助任何人在未来寻求解决这个问题。这对我来说非常适合Android,我很快就会在iOS上进行测试。

您可以通过root config.xml -

在此应用启动时自动启用推送
<!-- Enable push when the application launches (instead of waiting for enablePush js call).  Defaults to false -->
<preference name="com.urbanairship.enable_push_onlaunch" value="true | false" />