Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android WebView no carga jQuery

Estoy haciendo una aplicación web y estoy usando jQuery.

He hecho una aplicación androide simple con un WebView en ella, y carga mi url: www.mydomain.com

En mydomain.com tengo:

<script src="js/jquery_1.4.2_min.js"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function(){ alert("Hii!!!!"); }); </script> 

Si visito mydomain desde el navegador, la alerta aparece bien. Pero si visita desde mi aplicación nativa, no se muestra. ¿Que puedo hacer?

7 Solutions collect form web for “Android WebView no carga jQuery”

¿Está habilitado JavaScript en su webview …?

 WebView.getSettings().setJavaScriptEnabled(true); 

No soy experto en Android nativo, pero hemos desarrollado una aplicación utilizando jQuery sitio basado en una webview. Necesitas setJavaScriptEnabled (true) en tu clase de actividad y jQuery ejecuta jsut fine. Sin embargo su ejemplo con alerta ('Hola'); No funcionará porque las vistas web de Android no admiten alertas de forma predeterminada. Se puede habilitar con un poco de google … http://lexandera.com/2009/01/adding-alert-support-to-a-webview/

Alternativamente añadimos una función personalizada showAlert js para mostrar las notificaciones de usuarios.

Vieja pregunta, pero pensé que añadiría mi 2cents de todos modos.

Las alertas Javascript funcionan en una vista web, pero primero debe configurar el cliente Web cromado.

 webView.setWebChromeClient(new WebChromeClient()) 

¿Dónde está ubicado el script js / jquery_1.4.2_min.js? Si se encuentra en su directorio de activos, entonces debe inicializar el webView dándole el directorio de activos como baseUrl:

 webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null); 

o

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

Usted podría intentar crear un archivo .js simple con una función simple como

 function dummy(document) { document.write("Hooray it works"); } 

Y tratar de acceder a la función ficticia en su html para comprobar si el archivo. Js está incluido.

Puede que necesite dos cosas:

 webSettings.setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient()); 

El problema parece ser la ubicación del archivo jquery.js. Publique algún código sobre cómo está configurando el webView. Eso nos daría algunas pistas.

Para un ejemplo, mira esto: http://techdroid.kbeanie.com/2010/10/android-webview-javascript-and-css.html

Intente esto: Cree una actividad principal.

  import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView webView; private JavaScriptInterFace javaScriptInterFace; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView=(WebView)findViewById(R.id.webView); javaScriptInterFace=new JavaScriptInterFace(this); webView.addJavascriptInterface(javaScriptInterFace, "AndroidFunction"); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/test.html"); webView.setWebViewClient(new WebViewClient()); } } 

Cree otro archivo java llamado JavaScriptInterFace

  import android.content.Context; import android.util.Log; import android.widget.Toast; public class JavaScriptInterFace { Context mContext; JavaScriptInterFace(Context c) { mContext = c; } public int changeImage(){ Log.e("Got", "it"+2); return 2; } public void showToast(){ Toast.makeText(mContext, "hi", Toast.LENGTH_SHORT).show(); } } 

El creat un archivo html poner esto en la carpeta de activos del proyecto

  <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width; user-scalable=0;" /> <title>My HTML</title> </head> <body> <p id="mytext">Hello!</p> <img alt="show" src="ic_left_arrow.png" id="myImage"/> </br> <input type="button" value="Change" onClick="changeImage()" /> <input type="button" value="Show tost" onClick="showToast()" /> <script language="javascript"> function changeImage() { i=AndroidFunction.changeImage(); if(i===2){ document.getElementById('mytext').innerHTML = i; document.getElementById('myImage').src="ic_right_arrow.png"; } } function showToast() { AndroidFunction.showToast(); } </script> </body> </html> 

Coloque las imágenes necesarias en la carpeta de activos de su proyecto junto con el archivo html anterior.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.