1

Android で Appcelerator Cloud Service を使用してプッシュ通知を実装しようとしていますが、いくつか問題があります... 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 クライアントがプッシュ通知をサブスクライブしました。そして、アラートとタイトル付きのプッシュ通知を1つ送信しても、何も表示されません...再起動を試み、アプリをオフにして、別のプッシュ通知を送信してみてください。インターネット(wifi)を備えたAndroid 2.2.1を搭載したデバイス(LG OPTIMUS ONE)を使用していました。それで、私は別の電話(SAMSUNG GALAXY S2)3.3.2でインターネット(wifi)を試してみました。唯一の変更はクラウドコンソールにあります:プッシュ通知-> 2つのAndroidクライアントがプッシュ通知にサブスクライブしました。しかし、それは同じです、通知は表示されません。お願いします、本当に助けが必要です。私は 2 日で iOS に成功しましたが、ここで何が重要なのか理解できません。

4

3 に答える 3

2

私は Marketplace で upush モジュールを使用しています。起動して実行するのに 10 分かかり、多くの時間を節約できました。

于 2012-11-13T09:36:25.023 に答える
2

ACS を使用するために Google C2DM に登録する必要はないと思います。ACS は、プッシュの送信に MQTT プロトコルを使用します。(私はこのステップバイステップのtutに従いました:http://www.titaniumtutorial.com/2012/06/appcelerator-cloud-push-notification-in.html) AndroidとTiでプッシュ通知を使用して、すでに1つのプロジェクトを実行しましたか?設定を確認しましたが、すべて問題ありません。しかし、私は必死なので、C2DMにも登録していますが、何も良くないので、テストする前にもう少し待つ必要があると思います.

于 2012-06-26T13:15:10.013 に答える
1

Google C2DMに登録しましたか?デバイスに通知を送信するには、 https://developers.google.com/android/c2dm/signupのフォームに記入する必要があります。Appceleratorクラウド設定で正しいアプリIDを持っていることを確認してください。

于 2012-06-25T14:19:55.563 に答える