2012-01-16 4 views
0

Phonegap AndroidアプリPhonegap v1.3を使用しています。私は、特定のファイルをシステムから取得し、js関数を実行するphonegap用のプラグインを作成しました。すべてのプラグインとして
はPhoneGapのクラスプラグインを拡張する、私はそこから直接JS機能を実行することができません。そうからプラグインの機能を実行し、私は実行 - >Phonegap AndroidプラグインからJS関数を実行

PluginResult result = null; 
Home home = new Home(); 
result = new PluginResult(Status.OK); 
home.loadPage("pic.jpg"); 

このホームではDroidgapを拡張し、私のメインクラスです。自宅で
私は機能を持っているloadPage

public void loadPage(String filePath){ 
super.setIntegerProperty("loadUrlTimeoutValue", 60000); 
super.loadUrl("javascript:navigator.somefunc(\""+filePath+"\");"); 
} 

は問題がDroidGapのsetIntegerProperty機能は、NPEを投げているということです。ここにログがあります。

01-16 11:41:32.364: W/System.err(13162): java.lang.NullPointerException 
01-16 11:41:32.364: W/System.err(13162): at com.phonegap.DroidGap.setIntegerProperty(DroidGap.java:738) 
01-16 11:41:32.364: W/System.err(13162): at e2o.mobile.Home.loadSharePage(Home.java:120) 
01-16 11:41:32.364: W/System.err(13162): at com.phonegap.plugins.checkImage.CheckUploadImage.execute(CheckUploadImage.java:158) 
01-16 11:41:32.364: W/System.err(13162): at com.phonegap.api.PluginManager$1.run(PluginManager.java:150) 
01-16 11:41:32.364: W/System.err(13162): at java.lang.Thread.run(Thread.java:1019) 

setIntegerProperty関数でBascically -

public void setIntegerProperty(String name, int value) { 
    this.getIntent().putExtra(name, value); 
} 

this.getIntent()はnullを返すされています。 私は何が欠けているか教えてくれるでしょう。または、私のユースケースのシナリオでは、どのようにjs関数を実行するのですか?私は使用しない場合

super.setIntegerProperty("loadUrlTimeoutValue", 60000, intent); 

また、loadUrlも何もしません。 JSは呼び出されません、またはタイムアウトします。

答えて

2

新しいホームオブジェクトをインスタンス化しているからです。オブジェクトはコンストラクタを使用して作成されますが、onCreateメソッドは呼び出されないため、適切なオブジェクト設定が多く発生しません。そのため、あなたはNullPointerExceptionを取得しています。

あなたはあなたのためのnavigator.somefuncを実行することができます(filePathに)メソッドのように成功機能OKの状態で新しいPluginResultに戻ってきています。そんなに簡単になるでしょう。

+0

はい私は間違ったアプローチを以下ました。成功関数はjs関数を実行する必要があります。今はうまくいく。 :) – ghostCoder

関連する問題