我正在尝试在Android手机差距应用程序中实现Urban Airship。我正在使用github上的Urban Airship Phone Gap插件。我知道Urban Airship成功注册该设备是因为:
我也能像这样挂钩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
回调中。
答案 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" />