0

私は Phonegap アプリ (Android 上) に取り組んでおり、アプリケーションを Phonegap 2.2 で更新しました。残念ながら、Javascript インターフェイスの使用中にエラーが発生するようになりました。

Uncaught Error: Error calling method on NPObject. at file:///android_asset/www/dossier_med_list.html#/android_asset/www/dossier_med_new.html:22

Javascript インターフェイス関数の使用時にエラーが発生しました:

var tel = window.language_classe.getSystemPhoneNumber() ;

これがクラスの作成方法です。

import org.apache.cordova.DroidGap;

import android.content.Context;
import android.telephony.TelephonyManager;
import android.webkit.WebView;

public class LanguageClass {
    private WebView mAppView;
    private DroidGap mGap;
    private Context mContext;


    public LanguageClass( DroidGap gap, WebView view, Context context) {
        mAppView = view;
        mGap = gap;
        mContext = context;

    }

    public String getSystemPhoneNumber() {
        TelephonyManager tMgr = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
        return tMgr.getLine1Number();
    }

}

そして、これが私のアプリケーションを初期化する方法です:

   public class App extends DroidGap
   {
    private LanguageClass language;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        language = new LanguageClass(this, appView, this.getBaseContext());
        appView.addJavascriptInterface(language, "language_classe");

        super.setIntegerProperty("loadUrlTimeoutValue", 60000);
        super.setIntegerProperty("splashscreen", R.drawable.splash);
        super.loadUrl("file:///android_asset/www/accueil.html", 150000);
    }

}

なぜこれが起こっているのか手がかりはありますか? ドキュメントでこの問題について何も見ていませんでしたし、Phonegap 2.2.0 への更新中にこの機能について何も変更しませんでした。

助けてくれてありがとう。

4

1 に答える 1

0

本当は、LanguageClass が PhoneGap からプラグイン クラスを拡張する必要があります。そうすれば、これらの奇妙な問題を回避できます。

App クラスでわかることは、LanguageClass() コンストラクターをパラメーターなしで呼び出していることですが、LanguageClass クラスには対応するコンストラクターがありません。

于 2012-11-16T19:07:31.990 に答える