Reputation: 1403
I'm a complete noob to Android and this is just a simple test. Based it on this tutorial.
Here goes the 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");
}
}
And this is from 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 this is all I changed on the Manifest:
<activity android:name=".HelloWebApp"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
android:screenOrientation="landscape">
As for the javascript, I've tried everything. Complicated, simple, inside the body at the bottom, in a button, on the head. Nothing works. The html works fine.
Thanks in advance for any help.
Upvotes: 7
Views: 30001
Reputation: 5099
As discussed in https://stackoverflow.com/a/7561674/1818089,
along with
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
you need to enable DOM storage
WebSettings webSettings = webView.getSettings();
webSettings.setDomStorageEnabled(true);
Upvotes: 2
Reputation: 1
just add
import android.webkit.WebChromeClient;
import android.webkit.WebView;
in YourApp.java
Upvotes: -2
Reputation: 20371
You missed the part in the tutorial where he adds
webView.setWebChromeClient(new WebChromeClient());
right after adding
webView.getSettings().setJavaScriptEnabled(true);
The JavaDoc for this method says:
Sets the chrome handler. This is an implementation of WebChromeClient for use in handling Javascript dialogs, favicons, titles, and the progress. This will replace the current handler.
Upvotes: 23