AeroGear UnifiedPush Cordova 注册设备

AeroGear UnifiedPush Cordova register devices

我已经在 Jboss 6.4 上部署了 UnifiedPush,我可以访问管理员 ui 并创建新应用程序。 我正在尝试开发一个新应用程序,以便测试来自管理控制台的推送通知。我正在为 android 平台使用 PhoneGap 和 building。 我在 Genymotion Android 模拟器上执行它。

这是我的 index.html 页面:

    <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Hello World</title>

    <script>
    var app = {
    // Application Constructor
    initialize: function() {
      this.bindEvents();
    },
    // Bind Event Listeners
    //
    // Bind any events that are required on startup. Common events are:
    // 'load', 'deviceready', 'offline', and 'online'.
    bindEvents: function() {
      document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    // deviceready Event Handler
    //
    // The scope of 'this' is the event. In order to call the 'receivedEvent'
    // function, we must explicitly call 'app.receivedEvent(...);'
    onDeviceReady: function() {
      app.receivedEvent('deviceready');
      var pushConfig = {
        pushServerURL: "http://localhost:8080/ag-push/",
        android: {
          senderID: "admin",
          variantID: "...",
          variantSecret: "..."
        }
      };
  push.register(app.onNotification, successHandler, errorHandler, pushConfig);

  function successHandler() {
    console.log('success')
  }

  function errorHandler(message) {
    console.log('error ' + message);
  }
  },
  onNotification: function(event) {
    alert(event.alert);
  },
  // Update DOM on a Received Event
  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);
  }
  };

    </script>

</head>

<body>
    <div class="app">
        <h1>PhoneGap prova</h1>
        <div id="deviceready" class="blink">
            <p class="event listening">Connecting to Device</p>
            <p class="event received">Device is Ready</p>
        </div>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script>app.initialize();</script>
</body>

</html>

问题是在 UnifiedPush 管理控制台上没有注册任何设备。 我收到此错误:ConnectException: failed to connect to localhost/127.0.0.1 (port 8080) after 30000ms: isConnected failed:ECONNREFUSED (Connection refused). 怎么了?

解决方法:pushServerUrl不能是"http://localhost:8080/ag-push/",需要在server为运行的地方设置本机ip。 (例如 "http://192.168.1.2:8080/ag-push/")。