我正在尝试在 Android 上使用 Appcelerator 云服务实现推送通知但我有一些问题......这里的 tiapp.xml :
<sdk-version>2.0.2.GA</sdk-version>
<modules>
<module platform="commonjs" version="2.0.5">ti.cloud</module>
<module platform="android" version="2.0.5">ti.cloudpush</module>
</modules>
包括 Android 运行时 v8 和 ti.cloudpush,这是我的 app.js 文件
var win = Ti.UI.createWindow({
backgroundColor:'#ccc',
title:'Android Cloud Push Notification'
})
var CloudPush = require('ti.cloudpush');
CloudPush.debug = true;
CloudPush.enabled = true;
CloudPush.showTrayNotificationsWhenFocused = true;
CloudPush.focusAppOnPush = false;
var deviceToken;
var Cloud = require('ti.cloud');
Cloud.debug = true;
var submit = Ti.UI.createButton({
title : 'Register For Push Notification',
color:'#000',
height : 53,
width : 200,
top : 100,
});
win.add(submit);
submit.addEventListener('click', function(e) {
CloudPush.retrieveDeviceToken({
success: function deviceTokenSuccess(e) {
alert('Device Token: ' + e.deviceToken);
deviceToken = e.deviceToken
loginDefault();
},
error: function deviceTokenError(e) {
alert('Failed to register for push! ' + e.error);
}
});
});
function defaultSubscribe(){
Cloud.PushNotifications.subscribe({
channel: 'chanel',
device_token: deviceToken,
type: 'android'
}, function (e){
if (e.success) {
alert('Subscribed for Push Notification!');
}else{
alert('Error:' +((e.error && e.message) || JSON.stringify(e)));
}
});
}
function loginDefault(e){
//Create a Default User in Cloud Console, and login
Cloud.Users.login({
login: 'android',
password: 'android'
}, function (e) {
if (e.success) {
alert("login success");
defaultSubscribe();
} else {
alert('Error: ' +((e.error && e.message) || JSON.stringify(e)));
}
});
}
CloudPush.addEventListener('callback', function (evt) {
//alert(evt);
alert(evt.payload);
});
CloudPush.addEventListener('trayClickLaunchedApp', function (evt) {
//Ti.API.info('Tray Click Launched App (app was not running)');
alert('Tray Click Launched App (app was not running');
});
CloudPush.addEventListener('trayClickFocusedApp', function (evt) {
//Ti.API.info('Tray Click Focused App (app was already running)');
alert('Tray Click Focused App (app was already running)');
});
win.open();
我在 Appcelerator 云控制台中有用户 android / android 用于开发模式。以调试模式将我的应用程序启动到我的设备上 在应用程序上:只需单击按钮“注册推送通知”并查看 3 个警报 1)设备令牌:“所有数字”2)登录成功 3)订阅推送通知!
在 Appcelerator Cloud 控制台上:日志 -> 查看登录和订阅,打开它,一切正常 推送通知 -> 1 个 Android 客户端订阅了推送通知。并通过警报和标题发送一条推送通知,什么都没有出现...尝试重新启动,尝试关闭应用程序并发送另一个,什么都没有。我正在使用带有 android 2.2.1 的设备(LG OPTIMUS ONE),上面有互联网(wifi)。所以,我尝试使用另一部带有互联网的手机(SAMSUNG GALAXY S2)3.3.2(wifi),唯一的变化是在云控制台中:推送通知-> 2 个 Android 客户端订阅了推送通知。但它是一样的,没有通知出现。拜托,我真的需要帮助,我在 2 天内成功使用 iOS,但我不明白这里有什么大不了的?