Зависание сервера на андроиде WebView - PullRequest
0 голосов
/ 17 января 2019

Я получаю сообщение «Зависание сервера» при загрузке URL в webView, и это сообщение не реализовано ни на стороне Android, ни на стороне сервера. Если кто-нибудь знает, как решить эту проблему, пожалуйста, помогите. Спасибо

Я использовал следующий код:

 private WebView mWebview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mWebview  = new WebView(this);
        mWebview.getSettings().setJavaScriptEnabled(true); 
        webView.setWebChromeClient(new MyWebChromeClient(this));
        mWebview .loadUrl("our server url");
        setContentView(mWebview);
    }

    private class MyWebChromeClient extends WebChromeClient {
    Context context;

    public MyWebChromeClient(Context context) {
        super();
        this.context = context;
        }
    }

Пожалуйста, проверьте скриншот

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Пожалуйста, используйте этот метод и установите 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 голосов
/ 18 января 2019

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 голосов
/ 17 января 2019

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

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