Android WebView не может загрузить какой-либо URL-адрес

Я сталкиваюсь с серьезными проблемами при загрузке URL-адреса с помощью Android WebView, если страница не может загрузить URL-адрес и страница пуста, другие страницы, использующие WebView, не загружают страницу, и я должен выйти из своего приложения, чтобы перезагрузить его, поэтому WebView страница может успешно загрузить URL. Я не знаю, почему это происходит?

Может кто-нибудь сказать мне, почему и как решить эти вопросы?

Спасибо.


person android_apple    schedule 26.07.2016    source источник
comment
Пожалуйста, предоставьте код, который вы уже пробовали.   -  person mjosh    schedule 26.07.2016


Ответы (2)


Попробуйте это на своей активности в Mainfest, установите это

 android:onHistory="true"

Если у вас есть проблема, когда нет результата, попробуйте также этот код

При создании

    webview = (WebView) findViewById(R.id.webview);
    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    //ws.setJavaScriptEnabled(true);
    settings.setJavaScriptCanOpenWindowsAutomatically(true);
    webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);




 webview.setWebViewClient(new WebViewClient() {

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.i(TAG, "Processing webview url click..."+url);
            view.loadUrl(url);

            return true;
        }


        public void onPageFinished(WebView view, String url) {
            Log.e(TAG, "Finished loading URL: " + url);


            //webview.reload();
        }


        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {



        }
    });

    webview.loadUrl("your Url");

В классе

 @Override
 public void onBackPressed() {

    if (webview.canGoBack()) {
        webview.goBack();
    } else {
        finish();
    }


 }

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //Display confirmation here, finish() activity.
        if (webview.canGoBack()) {
            webview.goBack();
        } else {
            finish();
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
  }
person Arjun saini    schedule 26.07.2016
comment
Уважаемый Arjun saini, спасибо за ответ на мой вопрос, но ваш код не помогает мне решить мои проблемы, мой код похож на ваш, но ошибка все еще существует, я так озадачен... - person android_apple; 28.07.2016
comment
Вы установили android:onHistory=true в AndroidMainfiest для своей деятельности - person Arjun saini; 28.07.2016
comment
Я добавляю эту строку, но программа дает мне подсказки, это неизвестный атрибут, почему? Что означает эта строка? - person android_apple; 29.07.2016
comment
Вы даете разрешение//?? ‹использует-разрешение android:name=android.permission.INTERNET /› - person Arjun saini; 29.07.2016
comment
попробуйте добавить это и повторите попытку ‹activity android:name=.YouActivity android:label=@string/app_name android:theme=@android:style/Theme.NoTitleBar› - person Arjun saini; 29.07.2016
comment
Я добавил разрешение, но бесполезно! - person android_apple; 01.08.2016

Попробуйте этот код может работать

Вебвиевсамплеактивити.java

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class WebViewSampleActivity extends Activity {
private WebView webview;
private static final String TAG = "Main";
private ProgressDialog progressBar;  

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.main);

    this.webview = (WebView)findViewById(R.id.webView1);

    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

    progressBar = ProgressDialog.show(WebViewSampleActivity.this, "WebView Example", "Loading...");

    webview.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.i(TAG, "Processing webview url click...");
            view.loadUrl(url);
            return true;
        }

        public void onPageFinished(WebView view, String url) {
            Log.i(TAG, "Finished loading URL: " +url);
            if (progressBar.isShowing()) {
                progressBar.dismiss();
            }
        }

        @SuppressWarnings("deprecation")
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Log.e(TAG, "Error: " + description);
            Toast.makeText(WebViewSampleActivity.this, "Oh no! " + description, Toast.LENGTH_SHORT).show();
            alertDialog.setTitle("Error");
            alertDialog.setMessage(description);
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    return;
                }
            });
            alertDialog.show();
        }
    });
    webview.loadUrl("http://www.google.com");
  }
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<WebView
    android:id="@+id/webView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" />

</LinearLayout>

Добавьте разрешение на доступ в Интернет в манифест

    <uses-permission android:name="android.permission.INTERNET"/>
person Nikhil PV    schedule 26.07.2016
comment
О нет, ваш ответ не решает моих проблем. Мой код такой же, как и у вас, и проблема, с которой я сталкиваюсь, все еще иногда случалась, но всем спасибо. - person android_apple; 28.07.2016