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/"
)。
我已经在 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/"
)。