web-dev-qa-db-fra.com

@JavascriptInterface ne peut pas être résolu

Je travaille avec Android pour faire en sorte qu'une page Web interagisse avec mon application. En tant que tel, j'ai parcouru la documentation et les tutoriels et j'ai fini par trouver ce site . Dans celle-ci, la liste des développeurs que vous devez inclure @JavascriptInterface avant toute fonction que vous souhaitez rendre accessible par WebView et sans laquelle Jelly Bean ne reconnaîtrait pas la fonction.

Mon problème est que lorsque je mets cela dedans, j'obtiens une erreur en disant:

@JavascriptInterface ne peut pas être résolu en un type

Sans cela, mon code est compilé et fonctionne bien, mais je veux une compatibilité Jelly Bean. Je travaille actuellement sur Android 1.6 en tant que base, est-ce qu'il n'a tout simplement pas @JavascriptInterface? Est-ce une chose spécifique à Jelly Bean, ce qui signifie que je devrai créer un programme spécifiquement pour Jelly Bean? Toute aide serait grandement appréciée. Voici ma classe d'interface complète:

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 est introduit dans JellyBean.

Vous devez définir la cible de génération de projet au niveau 17 de l'API.

Dans Eclipse IDE, accédez à Project->Properties. Sélectionnez Android et définissez la cible

L'APK fonctionnera sur les anciennes versions d'Android.

37
Tarak

Vous devez ajouter ceci:

import Android.webkit.JavascriptInterface;

Vérifiez l'échantillon ici:

20
willandlily

Étapes pour les utilisateurs d'Android Studio:

  1. Vérifiez que dans build.gradle minSdkVersion est 17 ou supérieur
  2. Ajouter import Android.webkit.JavascriptInterface;
0
Balazs F.