Зависание сервера на андроиде webView

причина, по которой вы столкнулись с ошибкой связи, заключается в том, что если вы посмотрите на содержимое библиотеки stdlib.h, вы обнаружите, что setenv () там не объявляется. На первый взгляд, это стандартный API C, но выглядит так: Windows не соответствует всему стандарту. Или, возможно, вы сможете настроить VS на использование CRT вместо среды выполнения Windows, в этом случае я думаю, что setenv будет идентифицирован.

3
задан Sushant Poman 17 January 2019 в 05:54
поделиться

3 ответа

Webview показывает вам HTML, возвращенный по URL, который был загружен. onReceivedError() не будет вызвано, если вы получите ответ, содержащий сообщение об ошибке.

Проверьте, что вы получаете в виде HTML с сервера, используя следующий код в onPageFinished().

webView.evaluateJavascript(
    "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();",
    new ValueCallback<String>() {
        @Override
        public void onReceiveValue(String html) {
                // displays the HTML received after the URL is loaded.
            Log.e("#Eval", "Html -> " + html);
        }
    });

Поскольку вы упомянули, что сообщение не реализовано в вашем приложении, оно должно быть получено со стороны сервера.

0
ответ дан Pranav Karnik 17 January 2019 в 05:54
поделиться

Google.com является безопасным доменом. Вы должны использовать https://www.google.com вместо http://www.google.com .

0
ответ дан Varun 17 January 2019 в 05:54
поделиться

Пожалуйста, используйте этот метод и установите URL вашего сайта: Пример: startWebView (" https://stackoverflow.com ");

private void startWebView(String url) {

        WebSettings settings = webview.getSettings();

        settings.setJavaScriptEnabled(true);
        webview.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);

        webview.getSettings().setBuiltInZoomControls(true);
        webview.getSettings().setUseWideViewPort(true);
        webview.getSettings().setLoadWithOverviewMode(true);

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {

            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Toast.makeText(getApplicationContext(), "Error:" + description, Toast.LENGTH_SHORT).show();

            }
        });
        webview.loadUrl(url);

    }
0
ответ дан Md Yeasin Ali 17 January 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: