gpt4 book ai didi

android - 清除 Android 的本地通知 cordova 插件

转载 作者:搜寻专家 更新时间:2023-11-01 08:06:30 25 4
gpt4 key购买 nike

我使用 Phonegap's localNotification Plugin for Android显示特定日期的通知。

我使用 Cordova [2.2] 并且我使用了 cordova 的 upgrading tutorial修改插件。

显示了通知,但是当我点击它时,应用程序没有打开,通知也没有被清除。

我该如何解决这个问题?

最佳答案

在 AlarmReceiver.java 中,大约第 70 行,您将看到以下代码行:

    // Construct the notification and notificationManager objects
final NotificationManager notificationMgr = (NotificationManager) systemService;
final Notification notification = new Notification(R.drawable.ic_launcher, tickerText,
System.currentTimeMillis());
final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.vibrate = new long[] { 0, 100, 200, 300 };
notification.setLatestEventInfo(context, notificationTitle, notificationSubText, contentIntent);

添加适当的行以匹配以下内容:

    // Construct the notification and notificationManager objects
final NotificationManager notificationMgr = (NotificationManager) systemService;
final Notification notification = new Notification(R.drawable.ic_launcher, tickerText,
System.currentTimeMillis());
Intent notificationIntent = new Intent(context, CLASS_TO_OPEN.class);
final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.vibrate = new long[] { 0, 100, 200, 300 };
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(context, notificationTitle, notificationSubText, contentIntent);

其中 CLASS_TO_OPEN 是您希望在按下通知时打开的类的名称。

编辑:
澄清一下,为了让通知在按下时打开一个 Activity ,您需要将此 Activity 与通知对象相关联。这是通过创建一个 Intent,指定要打开的 Activity (如在 NAME_OF_ACTIVITY.class 中)作为第二个参数,并将此 Intent 传递给 PendingIntent< 来完成的 作为第三个参数。这又通过 setLatestEventInfo 方法传递给通知对象。

在上面的代码 fragment 中,除了指定要打开的 Activity 外,这一切都已为您完成,因为这将特定于您的项目。除非您添加了额外的 Activity ,否则 PhoneGap/Cordova 项目包含一项 Activity ,即打开 Cordova WebView 的 Activity 。如果您不知道或不记得项目中此 Activity 的名称,可以通过以下方式在 Package Explorer(在 Eclipse 中)中找到它:

src>NAME_OF_YOUR_PACKAGE>NameOfActivity.java

为确保这是类的名称,请使用文本编辑器打开 java 文件,您将看到 NAME_OF_ACTIVITY extends DroidGap。将上面代码段中的 CLASS_TO_OPEN 替换为您的 Activity 名称(必须包含 .class 文件扩展名)。

关于android - 清除 Android 的本地通知 cordova 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com