¿Cómo puedo llamar a una devolución de llamada externa desde un componente WebKit en una aplicación de Android?

Puede insertar un objeto Java en el intérprete Javascript usando WebView.addJavascriptInterface ():

http://developer.android.com/ref…

Luego puede usar el código Javascript dentro de la página para volver a llamar al código Java de su aplicación.

Aquí hay un ejemplo simple:

http://lexandera.com/2009/01/ext…

Además de pasar valores de Javascript a Java, también puede devolver valores de Java a Javascript. Tenga en cuenta que, aparte de los números y las cadenas, debe encadenar la mayoría de los tipos de objetos y matrices con JSON:

En el lado de Javascript: http://www.json.org/js.html
En el lado de Android: http://developer.android.com/ref…

Otro problema común es que algunas versiones de Android tienen un error en la traducción de argumentos de Java a Javascript que impide que los parámetros de cadena funcionen en algún código Javascript (se convierten en cadenas en blanco). La causa es que los objetos no son verdaderos objetos de cadena Javascript. Para solucionar esto, puede forzar que la Cadena Java traducida se convierta en un verdadero objeto de cadena Javascript agregándola a un literal de cadena en blanco de la siguiente manera:

  var js_string = '' + pass_string;