3

我已成功设置代码以在 Android 应用程序上通过 phonegap 运行 GCM。我设法保护了手机注册 ID,并能够在 PHP 脚本中使用此 ID 向应用程序发送消息。我唯一的问题是在应用程序打开时消息显示为 javascript 警报,我希望将消息发送到手机但未在顶部通知栏上显示图标。

**> 可以在 android 设备的顶部栏上显示图标

有谁知道 Phonegap 的 GCM 插件是否能够做到这一点?**

我有使用 C2DM-Phonegap。 https://github.com/marknutter/GCM-Cordova

请帮助我的朋友...

4

4 回答 4

4

您正在使用的库指定收到消息时需要执行的操作。你可以修改他们的代码来做你想做的事,或者推出你自己的 GCMIntentService。

请参考此链接:

https://github.com/phonegap-build/PushPlugin

https://build.phonegap.com/plugins/324

于 2014-06-07T08:50:13.770 回答
2

您正在使用的库指定收到消息时需要执行的操作。你可以修改他们的代码来做你想做的事,或者推出你自己的 GCMIntentService。

于 2012-10-24T17:18:08.113 回答
0

最快的方法是将以下代码添加到 GCMIntentService.java 到 onMessage 函数中。您使用的 GCM 插件只接收 GCM 消息,但您必须自己触发通知。您还可以尝试使用 cordova 插件来获取状态栏通知。

 protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "onMessage - context: " + context);

// Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null) {
    String message = extras.getString("message");
    String title = extras.getString("title");

    Notification notif = new Notification(R.drawable.ic_launcher, message, System.currentTimeMillis() );
    notif.flags = Notification.FLAG_AUTO_CANCEL;
    notif.defaults |= Notification.DEFAULT_SOUND;
    notif.defaults |= Notification.DEFAULT_VIBRATE;

    Intent notificationIntent = new Intent(context, SomeActivity.class);
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

    notif.setLatestEventInfo(context, "Title of notification", message, contentIntent);
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
    mNotificationManager.notify(1, notif);
于 2012-11-08T17:13:40.123 回答
0

请检查此代码

私有静态无效生成通知(上下文上下文,字符串消息){ int icon = R.drawable.ic_launcher;

       // here is your icon drawable instead of ic_launcher

    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager)
            context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);
    String title = context.getString(R.string.app_name);
    Intent notificationIntent = new Intent(context.getApplicationContext(), devicephp.class);
    // set intent so it does not start a new activity

    notificationIntent.putExtra("msg", message);
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent =
            PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(0, notification);


}
于 2013-01-05T09:52:30.107 回答