我在我的项目中使用cordova 3.3.1 。
我打算在 android 设备的状态栏通知中显示我的通知。为了实现这一点,我在GCMIntentService类中操作了createNotification()函数,现在我收到了通知。
现在我将在单击通知时显示特定页面(这取决于通知类型)。您对此有任何想法,我不知道如何实现这部分?我只知道如果我修改了扩展 CordovaActivity 的 java 类,那么每当我运行“cordova build”命令时,我都会丢失所有代码,因为这个类将由 cordova 生成。这是我的代码:
--------------in my class GCMIntentService---------------------------
public void createNotification(Context context, Bundle extras)
{
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String appName = getAppName(this);
Intent notificationIntent = new Intent(this, G3Tracker.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.putExtra("pushBundle", extras);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setDefaults(Notification.DEFAULT_ALL)
.setSmallIcon(context.getApplicationInfo().icon)
.setWhen(System.currentTimeMillis())
.setContentTitle(extras.getString("title"))
.setTicker(extras.getString("title"))
.setContentIntent(contentIntent);
String message = extras.getString("message");
if (message != null) {
mBuilder.setContentText("You recieved a new notification: " + message);
} else {
mBuilder.setContentText("message");
}
-----------------------------------------------------
public class G3Tracker extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
// Set by <content src="index.html" /> in config.xml
super.loadUrl(Config.getStartUrl());
//super.loadUrl("file:///android_asset/www/index.html")
}
}