Función javascript de llamada de una actividad de Android

Quiero llamar a una función javascript de una actividad de Android, pero no parece funcionar. He utilizado la función webview android webview.loadUrl ("javascript: function ()"); Este es mi código androide:

package com.example.web; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.webkit.WebView; public class MainActivity extends Activity { WebView webview; int i=30; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webview = (WebView)findViewById(R.id.webView1); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl("file:///android_asset/index.html"); webview.loadUrl("javascript:change(i)"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 

Este es mi código html:

  <html> <body> <div id="texta">text</div> <script> function change(num){ document.getElementById("texta").innerHTML=num; } </script> </body> </html> 

7 Solutions collect form web for “Función javascript de llamada de una actividad de Android”

Es probable que la página no esté completamente cargada en el momento en que intente ejecutar el javascript. Puedes intentar:

 webView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:change(i)"); } }); 

Tratar:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webview = (WebView)findViewById(R.id.webView1); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl("file:///android_asset/index.html"); webview.loadUrl("javascript:change("+String.valueOf(i)+")"); } 

¿Qué es "i"? Si "i" es un número, entonces especifique el número, si "i" es un carácter, entonces amablemente adjúntelo en doble cotización, está llamando a un método de algunos argumentos, por lo que amablemente corregir su error.

Prueba webview.loadUrl ("javascript: change (\" "+ i" \ ")");

Introduzca aquí la descripción de la imagen

  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Activity MyActivity = this; text=(EditText)findViewById(R.id.textValue); Show=(Button)findViewById(R.id.textButton); webView= (WebView) findViewById(R.id.webView); getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { MyActivity .setTitle("Loading..."); MyActivity .setProgress(progress * 100); if (progress == 100) MyActivity .setTitle("Android Dhina"); } }); webView.setWebViewClient(new WebViewClient()); webView.addJavascriptInterface(new WebAppInterface(this), "Android"); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/web.html"); Show.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { webView.loadUrl("javascript:callFromAndroidActivity (\""+text.getText().toString()+"\")"); } }); 

Intentalo:

 String URL = "file:///android_asset/filename.html"; webviewBrowser=(WebView)findViewById(R.id.webview); webview.getSettings().setJavaScriptEnabled(true); webview.setWebViewClient(new WebViewClient(webview.loadUrl(URL)); 

Intente cambiar esto:

 webview.loadUrl("javascript:change(i)"); 

a esto

 webview.loadUrl("javascript:change(" + i +")"); 

La forma en que usted tiene que escribir el "i" no es la variable "i" de su código java, sino sólo una cadena llamada "i".

  • JavaScript se detiene en la pestaña inactiva de Chrome de Android
  • ¿Aplicar Touch Swipe en una sola página, la página que se utiliza para cargar datos dinámicamente?
  • Algoritmo JavaScript para determinar la orientación de la tableta
  • Error en Samsung S4 "GetPTLAFormat: Formato no válido"
  • ¿Cómo puedo obtener Android para responder a los drags táctiles?
  • Phonegap vs nativo para la facilidad de desarrollo?
  • Socket.io - ReferenceError: io no está definido
  • Google Analytics interfiere con history.back () en el navegador android?
  • WebView oculta el teclado virtual durante loadUrl (), lo que significa que un teclado no puede permanecer abierto mientras llama a javascript
  • ¿Cómo puede Android escribir un valor en HTML5 localstorage?
  • La conexión con el servidor no tuvo éxito. (File: ///android_asset/www/index.html)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.