Android: не удается заставить JavaScript работать в WebView даже с setJavaScriptEnabled (true) - PullRequest
5 голосов
/ 25 февраля 2011

Я полный нуб на Android, и это всего лишь простой тест. Основано на этом уроке.

Здесь идет 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 / 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>

Плюс это все, что я изменил в Манифесте:

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

Что касается javascript, я попробовал все.Сложный, простой, внутри тела внизу, в кнопке, на голове.Ничего не работаетHTML работает нормально.

Заранее спасибо за любую помощь.

Ответы [ 3 ]

21 голосов
/ 25 февраля 2011

Вы пропустили ту часть в уроке, где он добавляет

webView.setWebChromeClient(new WebChromeClient());

сразу после добавления

webView.getSettings().setJavaScriptEnabled(true);

JavaDoc для этого метода говорит:

Устанавливает обработчик Chrome. Это реализация WebChromeClient для использования в обработке диалоговых окон Javascript, значков, заголовков и прогресса. Это заменит текущий обработчик.

1 голос
/ 21 марта 2017

Как обсуждено в 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);
0 голосов
/ 23 февраля 2016

просто добавьте

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

в YourApp.java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...