2011-02-24 8 views
5

Soy un novato completo para Android y esto es solo una prueba simple. Based it on this tutorial.Android: no se puede obtener Javascript para trabajar en WebView incluso con setJavaScriptEnabled (verdadero)

Aquí va el HelloWebApp.java

package com.company.something; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class HelloWebApp extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     WebView webView = (WebView)findViewById(R.id.webView); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("file:///android_asset/www/index.html"); 
    } 
} 

Y esto es de res/layout/main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<WebView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/webView" 
    /> 
</LinearLayout> 

Plus esto es todo lo que ha cambiado en el manifiesto:

<activity android:name=".HelloWebApp" 
android:label="@string/app_name" 
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 
android:screenOrientation="landscape"> 

En cuanto a la javascript, lo he intentado todo. Complicado, simple, dentro del cuerpo en la parte inferior, en un botón, en la cabeza. Nada funciona. El html funciona bien.

Gracias de antemano por cualquier ayuda.

Respuesta

19

se ha perdido la parte del tutorial donde se añade

webView.setWebChromeClient(new WebChromeClient()); 

justo después de la adición de

webView.getSettings().setJavaScriptEnabled(true); 

El JavaDoc for this method dice:

Establece el manejador de cromo. Esta es una implementación de WebChromeClient para usar en el manejo de diálogos de JavaScript, favicones, títulos y el progreso. Esto reemplazará al controlador actual.

+1

Gracias no.good.at.coding. Aunque ese debería ser mi nombre. ;-) – HotFudgeSunday

+0

Una cosa que no se menciona en el tutorial son las importaciones: import android.webkit.WebChromeClient; importar android.webkit.WebView; . Puede pasar el cursor sobre el código subrayado en rojo y obtendrá algunas opciones para solucionarlo. El primero será las importaciones. – HotFudgeSunday

0

sólo tiene que añadir

import android.webkit.WebChromeClient; 
import android.webkit.WebView; 

en YourApp.java

1

Como se discutió en https://stackoverflow.com/a/7561674/1818089,

junto con

mWebView = (WebView) findViewById(R.id.webview); 
mWebView.getSettings().setJavaScriptEnabled(true); 
mWebView.setWebChromeClient(new WebChromeClient()); 

necesita habilitar el almacenamiento DOM

WebSettings webSettings = webView.getSettings(); 
webSettings.setDomStorageEnabled(true); 
Cuestiones relacionadas