¿Cómo llamar a una función javascript directamente de una actividad en Android?

Quise saber si hay alguna manera que puedo llamar una función de JavaScript de la actividad nativa de Androide.

Me encontré con:

webView.loadUrl("javascript:hello()"); 

Pero no funcionó para mí.

Además, ¿cómo sabrá Android en qué página html reside esta función JavaScript?

Android solo puede llamar al método javascript si una página html está cargada en webView

 webView.loadUrl("javascript:hello()"); 

Llamará método hello escrito en la página html sólo si la página que contiene este método está cargada actualmente en el control de vista web

primera llamada

 webview.loadUrl("Your html page url"); 

luego llame

 webView.loadUrl("javascript:hello()"); 

En caso de que alguien tiene problemas con esto como lo hice, necesita llamar a su función javascript después de que la página ha terminado de cargar de lo contrario el javascript no se llamará:

  webviewer.loadUrl("file:///android_asset/mypage.html"); webviewer.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { webviewer.loadUrl("javascript:hello()"); } }); 

Antes de usar JavaScript, primero tiene que comprobar que Javascript está habilitado o no en su aplicación usando "getJavaScriptEnabled ()" (Su FALSO por defecto). Y el método loadUrl () sólo se utiliza para cargar la página actual. Su no hace nada relacionado con JavaScript.

EJEMPLO:

Configuración de WebView

// inicialización de webview

 webView = (WebView) findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); 

Cómo cargar HTML en WebView

 webView.loadUrl("file:///android_asset/testhtml.html"); 

Configuración de WebChromeClient en webView

 webView.setWebChromeClient(new MyJavaScriptChromeClient()); 

La clase MyJavaScriptChromeClient Aquí tenemos que anular el método onJsAlert () para manejar la función de alerta de JavaScript.

 private class MyJavaScriptChromeClient extends WebChromeClient { @Override public boolean onJsAlert(WebView view, String url, String message,final JsResult result) { //handle Alert event, here we are showing AlertDialog new AlertDialog.Builder(MainWebViewActivity.this) .setTitle("JavaScript Alert !") .setMessage(message) .setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // do your stuff result.confirm(); } }).setCancelable(false).create().show(); return true; } } 

Mi archivo Html: testhtml.html:

 <html> <body > <div onclick="alert('hello')"> Click Me !! </div> </body> </html> 

Cómo funciona ? Cuando el texto "Click Me !!" En el WebView se hace clic, se llama a la función android onJsAlert (vista WebView, URL de cadena, mensaje de cadena, resultado final de JsResult). El parámetro de alerta se copia en el parámetro de mensaje de la función onJsAlert. Y el resto de la manipulación se hace allí. Aquí estamos mostrando un AlertDialog.

  • PhoneGap - Botón para la pantalla principal del teléfono nativo
  • ¿Cómo cambiar el contenido de EditText con Javascript?
  • Bootstrap 2.3 Problemas de menú plegables en Android Mobile
  • Android webview + javascript no mostrar la salida en android 4.0.x, 3.x
  • ¿Hay una herramienta para permitir el uso de 9 parches de Android en Javascript?
  • Android WebView Javascript de los activos
  • Autenticar la aplicación HTML5 envuelta con Phonegap (o equivalente)
  • Cómo crear mapas que detectan la ubicación automática en React-Native
  • Uso de Javascript en la vista web
  • Imagen alfa en el navegador predeterminado de Android
  • Error no detectado: INVALID_STATE_ERR: excepción DOM 11
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.