web-dev-qa-db-ja.com

@JavascriptInterfaceを解決できません

私はAndroidを使用して、ウェブページをアプリと相互作用させています。そのため、ドキュメントとチュートリアルを確認して、最終的に このサイト =。その中で、開発者は、WebViewからアクセスしたい関数の前に@JavascriptInterfaceを含める必要があり、それがないとJellyBeanはその関数を認識しないとリストしています。

私の問題は、それを入れると、次のようなエラーが発生することです。

@JavascriptInterfaceをタイプに解決できません

これがないと、コードはコンパイルされて正常に動作しますが、JellyBeanとの互換性が必要です。私は現在Android 1.6をベースとして取り組んでいるので、@JavascriptInterfaceがないだけですか?それはジェリービーンズ固有のものですか?つまり、プログラムを作成する必要があります特にJellyBeanのために?どんな助けでも大歓迎です。これが私の完全なインターフェースクラスです:

import Android.content.Context;

public class WebAppInterface{

    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    //needed for Jelly bean
    @JavascriptInterface
    public void turnOff() {
        MyAlarmPopup.turnOff();
    }

}
18
user1982687

@JavascriptInterfaceはJellyBeanで導入されました。

プロジェクトビルドターゲットをAPIレベル17に設定する必要があります

Eclipse IDEから、Project->Propertiesに移動します。 Androidを選択し、ターゲットを設定します

APKは古いバージョンのAndroidで動作します。

37
Tarak

これを追加する必要があります:

import Android.webkit.JavascriptInterface;

ここでサンプルを確認してください:

20
willandlily

Android Studioのユーザー向けの手順:

  1. Build.gradleでminSdkVersionが17以上であることを確認してください
  2. 追加 import Android.webkit.JavascriptInterface;
0
Balazs F.