我正在使用英特尔XDK开发一个应用程序,我想实现推送通知。我使用的是pushwoosh cordova插件3.6.15在一个成功的构建之后,我把它安装在我的设备上,但这个应用程序很崩溃。当我添加插件但不使用它时,它不会崩溃这是我为了使用插件而添加的代码行:
try {
if (/(android)/i.test(navigator.userAgent)) {
registerPushwooshAndroid();
} else if (/(iphone|ipad)/i.test(navigator.userAgent)) {
}
}
catch (err) {
alert(err.message);
}
This is the implementation of PushwooshAndroid.js:
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
function registerPushwooshAndroid() {
var pushNotification = cordova.require("com.pushwoosh.plugins.pushwoosh.PushNotification");
//set push notifications handler
document.addEventListener('push-notification',
function(event) {
var title = event.notification.title;
var userData = event.notification.userdata;
//dump custom data to the console if it exists
if (typeof(userData) != "undefined") {
console.warn('user data: ' + JSON.stringify(userData));
}
//and show alert
alert(title);
//stopping geopushes
//pushNotification.stopGeoPushes();
}
);
//initialize Pushwoosh with projectid: "GOOGLE_PROJECT_ID", appid : "PUSHWOOSH_APP_ID". This will trigger all pending push notifications on start.
pushNotification.onDeviceReady({
projectid: "My ProjectID",
pw_appid: "My pw_appid"
});
//register for push notifications
pushNotification.registerDevice(
function(token) {
alert(token);
//callback when pushwoosh is ready
onPushwooshAndroidInitialized(token);
},
function(status) {
alert("failed to register: " + status);
console.warn(JSON.stringify(['failed to register ', status]));
}
);
}
function onPushwooshAndroidInitialized(pushToken) {
//output the token to the console
console.warn('push token: ' + pushToken);
var pushNotification = cordova.require("com.pushwoosh.plugins.pushwoosh.PushNotification");
//if you need push token at a later time you can always get it from Pushwoosh plugin
pushNotification.getPushToken(
function(token) {
console.warn('push token: ' + token);
}
);
//and HWID if you want to communicate with Pushwoosh API
pushNotification.getPushwooshHWID(
function(token) {
console.warn('Pushwoosh HWID: ' + token);
}
);
pushNotification.getTags(
function(tags) {
console.warn('tags for the device: ' + JSON.stringify(tags));
},
function(error) {
console.warn('get tags error: ' + JSON.stringify(error));
}
);
//set multi notificaiton mode
//pushNotification.setMultiNotificationMode();
//pushNotification.setEnableLED(true);
//set single notification mode
//pushNotification.setSingleNotificationMode();
//disable sound and vibration
//pushNotification.setSoundType(1);
//pushNotification.setVibrateType(1);
pushNotification.setLightScreenOnNotification(false);
//setting list tags
//pushNotification.setTags({"MyTag":["hello", "world"]});
//settings tags
pushNotification.setTags({
deviceName: "hello",
deviceId: 10
},
function(status) {
console.warn('setTags success');
},
function(status) {
console.warn('setTags failed');
}
);
//Pushwoosh Android specific method that cares for the battery
//pushNotification.startGeoPushes();
}
Please assist me
I would have sent the APK but I cant becuase its size is 47M
Another thing, I tried the pushwoosh tutorial project and it did not fail, I don't know why
Thanks for your help
请确保按照文档添加Pushwoosh XDK插件:http://docs.pushwoosh.com/docs/cordova-phonegap
对于英特尔XDK:添加pushwoosh英特尔XDK插件作为第三方插件