Search code examples
androidcordovaaerogear

AeroGear UnifiedPush Cordova register devices


I have deployed UnifiedPush over Jboss 6.4, i can access admin ui and create new apps. I m trying to build a new app, in order to test push notifications from admin console. I'm using PhoneGap and building for android platform. I'm executing it on Genymotion Android emulator.

This is my index.html page:

    <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>

The problem is that on UnifiedPush admin console no device is registered. I get this error: ConnectException: failed to connect to localhost/127.0.0.1 (port 8080) after 30000ms: isConnected failed:ECONNREFUSED (Connection refused). What is wrong?


Solution

  • Solution: pushServerUrl can't be "http://localhost:8080/ag-push/", you need to set local ip machine where server is running. (E.g. "http://192.168.1.2:8080/ag-push/").