2013-01-16 16 views
16

Sto lavorando con Android per far interagire una pagina web con la mia app. Come tale, ho esaminato la documentazione e le esercitazioni e ho finito per inventare lo this site. In esso, gli sviluppatori elencano che è necessario includere @JavascriptInterface prima di qualsiasi funzione che si desidera essere accessibile da WebView e che senza di essa, Jelly Bean non riconoscerà la funzione.@JavascriptInterface non può essere risolto

Il mio problema è che quando ho messo dentro, ottengo un errore che dice:

@JavascriptInterface non può essere risolto a un tipo

Senza di essa, il mio codice compila e funziona bene, ma voglio la compatibilità con Jelly Bean. Attualmente sto lavorando su Android 1.6 come base, quindi non ha lo @JavascriptInterface? È una cosa specifica di Jelly Bean, nel senso che dovrò creare un programma specifico per Jelly Bean? Qualsiasi aiuto sarebbe molto apprezzato. Ecco la mia completa classe di interfaccia:

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(); 
    } 

} 

risposta

36

@JavascriptInterface viene introdotto in Jellybean.

è necessario impostare la destinazione del progetto di costruzione di API livello 17

Da Eclipse IDE, andare a Project->Properties. Seleziona Android e imposta il target

L'APK funzionerà su versioni precedenti di Android.

+0

Questo è corretto. Funzionando bene con me ora. Grazie .. – Nimmy

+2

@nimmy come posso fare questo per livello API inferiore ?? –

19

è necessario aggiungere questo:

import android.webkit.JavascriptInterface; 

Check the sample here:

+1

questo diventa disponibile solo quando impostiamo il target al livello API 17 come la risposta sopra. – Prateek

Problemi correlati