Скрипты в WebView

Интерфейс, диалоги, темы, стили, меню
Ответить
Антон108
Сообщения: 8
Зарегистрирован: 27 фев 2015, 15:39

Скрипты в WebView

Сообщение Антон108 » 19 апр 2016, 13:50

Всем доброго времени суток.
Стоит задача реализовать окно которое содержит в себе WebView. В этом WebView необходимо отобразить страничку html которая была получена с сервера.

Код: Выделить всё

final WebSettings settings = webViewContent.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
webViewContent.getSettings().setLoadsImagesAutomatically(false);

webViewContent.setWebViewClient(new WebViewClient() {
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        view.getSettings().setLoadsImagesAutomatically(false);
    }

    public void onPageFinished(WebView view, String url) {
        view.getSettings().setLoadsImagesAutomatically(true);
    }
});
webViewContent.loadDataWithBaseURL(SERVER_URL, htmlText, "text/html", "UTF-8", null);	
// 	htmlText - текст котолрый получили с сервера (html страничка)
// SERVER_URL - Сыылка на дэфолтный сервак
В итоге придодит страница, отображается всё верно, но скрипты вырезаются. В чём может быть проблема и как её можно решить?

тут кусок примера скрипта который приходит с сервера:

Код: Выделить всё

<p>Ниже опрос:</p>
<p><!-- Vote start -->
<link rel="stylesheet" href="//access.inrecolan.com:4444/assets/vote/style.min.css">
<script type="text/javascript">
    (function (d, w, c, h) {
        (w[c] = w[c] || []).push({
            id: '24',
            el: (function () {
                var a = d.getElementsByTagName('script');
                return a[a.length - 1];
            })(),
            host: h,
            endpoint: '',
        });

        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = h + '/assets/vote/script.min.js?_t=' + Date.now();
        d.head.appendChild(s);
    })(document, window, 'Vote', '//access.inrecolan.com:4444');
</script>

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Скрипты в WebView

Сообщение Foenix » 19 апр 2016, 17:39

там флаг был у вебвью, что-то вроде enableScrypt
может в написании что-то другое, но он разрешает к выполнению скрипты.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Антон108
Сообщения: 8
Зарегистрирован: 27 фев 2015, 15:39

Re: Скрипты в WebView

Сообщение Антон108 » 20 апр 2016, 09:55

Foenix писал(а):там флаг был у вебвью, что-то вроде enableScrypt
может в написании что-то другое, но он разрешает к выполнению скрипты.
Да, и по умолчанию этот флаг false. Я ставлю true и никакого эффекта нет...

final WebSettings settings = webViewContent.getSettings();
settings.setJavaScriptEnabled(true);

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Скрипты в WebView

Сообщение Foenix » 20 апр 2016, 18:11

не знаю, у меня был эффект
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Антон108
Сообщения: 8
Зарегистрирован: 27 фев 2015, 15:39

Re: Скрипты в WebView

Сообщение Антон108 » 10 май 2016, 11:01

Решил свою проблему. Итоговый фрагмент кода такой:

Код: Выделить всё

final WebSettings settings = webViewContent.getSettings();
        settings.setJavaScriptEnabled(true);
        webViewContent.setWebChromeClient(new WebChromeClient());
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        webViewContent.getSettings().setDomStorageEnabled(true);
Эта настройка webView сделала своё дело:
webViewContent.getSettings().setDomStorageEnabled(true);

Ответить