3

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"アプリログに次のエラーが表示されます:Uncaught ReferenceError:プラグインが定義されていません

コルドバで変わった何か他のものを推測します。役立つ場合は、Androidプラグインをcordovaにアップグレードするためのガイドがどこかにあります。

4

2 に答える 2

3

本日、Cordova-1.6.1 にアップグレードし、動作するようになりました ;)

「椅子/キーボード」のインターフェースの問題だった可能性があることを認める勇気があります。1.6.0 にアップグレードしたときに、index.html のヘッダーを変更するのを忘れていたことを思い出してください。

于 2012-04-19T18:58:42.410 に答える
2

getContext()は減価償却されたようです。この問題に対するよりクリーンな解決策はありますか?

于 2012-07-16T07:39:58.007 に答える