7

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.

3 Answers 3

23

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.

Sign up to request clarification or add additional context in comments.

3 Comments

Thanks no.good.at.coding. Although that should be my name. ;-)
One thing not mentioned in the tutorial are the imports: import android.webkit.WebChromeClient; import android.webkit.WebView; . You can hover over the code underlined in red and you'll get some options to fix it. The first one will be the imports.
obrigado o que faltou aqui foi isso} webView.setWebChromeClient(new WebChromeClient());
2

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);

Comments

-2

just add

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

in YourApp.java

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.