2011-02-24 34 views
5

我是Android的完全noob,這只是一個簡單的測試。 Based it on this tutorial.Android:無法使用JavaScript在WebView上工作,即使使用setJavaScriptEnabled(true)

這裏去了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"); 
    } 
} 

這是從RES /佈局/ 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> 

加上這是我對艙單更改:

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

至於javascript,我試過了一切。複雜的,簡單的,在身體的底部,在一個按鈕,在頭上。什麼都沒有該html工作正常。

在此先感謝您的幫助。

回答

19

你錯過了本教程中的一部分,在那裏他加入

webView.getSettings().setJavaScriptEnabled(true); 

JavaDoc for this method說,之後增加了

webView.setWebChromeClient(new WebChromeClient()); 

設置鍍鉻處理。這是WebChromeClient的一個實現,用於處理Javascript對話框,網站圖標,標題和進度。這將取代當前的處理程序。

+1

謝謝no.good.at.coding。儘管這應該是我的名字。 ;-) – HotFudgeSunday 2011-02-25 10:53:25

+0

本教程中未提及的一件事是導入:import android.webkit.WebChromeClient;導入android.webkit.WebView; 。您可以將代碼懸停在帶紅色下劃線的代碼上,然後您可以選擇一些選項來修復它。第一個將是進口。 – HotFudgeSunday 2011-02-25 11:04:43

0

只需添加

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

在YourApp.java

1

正如https://stackoverflow.com/a/7561674/1818089討論,

隨着

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

您需要啓用DOM存儲

WebSettings webSettings = webView.getSettings(); 
webSettings.setDomStorageEnabled(true); 
相關問題