2010-09-22 12 views
5

È possibile aggiungere un'interfaccia JavaScript al browser Android nello stesso modo in cui è possibile aggiungere al componente WebView come illustrated in this demo. Il mio caso d'uso particolare richiede solo JavaScript -> android per poterlo inviare all'attività precedente.Aggiunta di un'interfaccia JavaScript a un browser

+0

Solo per curiosità, perché non si utilizza il codice del progetto open source che hai indicò? Non è lì quello che stai cercando? Non sei sicuro di cosa intendi con JS Interface, puoi spiegare cosa fa? –

+0

Ho bisogno dell'integrazione più stretta del browser su una WebView. Devo fare clic su un pulsante di una pagina web e attivare il ritorno alla precedente attività (che ha lanciato il browser) –

+1

Penso che non sia possibile ... non pensi che sarà pericoloso? Voglio dire, permettere che questo tipo di cose sarebbe un GRANDE problema di sicurezza. – Cristian

risposta

9

Puoi invocare metodi e funzioni nella tua webview usando javascript url's, ad es.

webview.loadUrl("javascript:somemethod()"); 

Sarà, ovviamente, necessario abilitare JavaScript sul tuo WebView:

webview.getSettings().setJavaScriptEnabled(true); 

Questo è da Java a JavaScript. Se si vuole invocare codice Java/API Android da JavaScript, utilizzare addJavascriptInterface()

webview.addJavascriptInterface(new MyJSJavaBridge(), "api"); 

Tutto questo è illustrato nell'esempio URL che avete inviato pure.

+0

sicuro, sulla WebView hai descritto gli stessi passaggi del WebViewDemo a cui mi sono collegato nella domanda, ma che dire del Browser? –

+0

@vo van der Wijk ho una domanda su questo codice - 'webview.loadUrl (" javascript: somemethod() ");' perché nella mia app non funziona = ( quindi puoi spiegare cosa c'è di sbagliato nel mio codice che non funziona - 'webview.loadUrl (" javascript: document.getElementById ('pass_id'). value = '"+ CLIENT_PWD +"') ");' – vladimir