试图让用于phonegap的Android LocalNotification插件在cordova-1.6.0中运行

时间:2012-04-18 22:03:18

标签: android plugins cordova localnotification

我正在尝试将使用Android的LocalNotification插件的phonegap-1.4.1项目升级到cordova-1.6.0

我在此处找到了此链接:https://github.com/davejohnson/phonegap-plugin-facebook-connect/pull/109 它所说的,对于Android:使用CordovaInterface对象的this.ctx.getContext()方法来获取Conext对象。

我编辑了LocalNotification.java并通过更改以下行让我的项目无错误地编译:

自:

alarm = new AlarmHelper(this.ctx);
...
final SharedPreferences alarmSettings = this.ctx.getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE);
...
final Editor alarmSettingsEditor = this.ctx.getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE).edit();
...
final Editor alarmSettingsEditor = this.ctx.getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE).edit();
...
final Editor alarmSettingsEditor = this.ctx.getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE).edit();

到:

alarm = new AlarmHelper(this.ctx.getContext());
...
final SharedPreferences alarmSettings = this.ctx.getContext().getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE);
...
final Editor alarmSettingsEditor = this.ctx.getContext().getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE).edit();
...
final Editor alarmSettingsEditor = this.ctx.getContext().getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE).edit();
...
final Editor alarmSettingsEditor = this.ctx.getContext().getSharedPreferences(PLUGIN_NAME, Context.MODE_PRIVATE).edit();

但是我必须承认,我真的不知道我在做什么,通知也不起作用,我在应用程序日志中没有出现任何错误:(

还注意到,根据我的onDeviceReady()函数中的示例,我有以下内容:

console.log("Device ready");

if (typeof plugins !== "undefined") {
   plugins.localNotification.add({
      date : new Date(),
      message : "Phonegap - Local Notification\r\nSubtitle comes after linebreak",
      ticker : "This is a sample ticker text",
      repeatDaily : false,
      id : 4
   });
}

如果我删除了if条件类型的插件!==“undefined”那么我的应用程序日志中出现错误:未捕获的ReferenceError:未定义插件

我想在cordova中改变了其他一些东西。如果有一个指南可以将android插件升级到cordova,如果有用的话。

2 个答案:

答案 0 :(得分:3)

今天升级到Cordova-1.6.1,现在可以使用了;)

勇敢地承认它可能是“主席/键盘”界面问题。 想想当我升级到1.6.0时我忘了在index.html的标题中更改它

答案 1 :(得分:2)

似乎getContext()已被折旧。这个问题有更清洁的解决方案吗?