Пустая страница WebView: как это исправить? - PullRequest
0 голосов
/ 05 июля 2019

У меня есть проблема, и я потратил слишком много времени на ее решение без каких-либо решений для ее устранения.Я хочу открыть ссылку в веб-просмотре.Мой logcat и мои вкладки запуска показывают, что веб-сайт загружен правильно, но мое веб-представление по-прежнему пустое.

это мой код

public class WebviewFragment extends AppCompatActivity {

    @BindView(R.id.webview)
    WebView webView;
    private String newString;
    private String key = "KEY";
    Activity activity;
    Context mContext;
    private ProgressDialog progDailog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview_fragment);

        activity = this;

        progDailog = ProgressDialog.show(activity, "Loading", "Please wait...", true);
        progDailog.setCancelable(false);
        webView = new WebView(this);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setCacheMode( 10 * 1024 * 1024 );
        webView.getSettings().setDomStorageEnabled(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setAppCachePath(activity.getCacheDir().getPath());
       webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setLoadsImagesAutomatically(true);

        if (savedInstanceState == null) {
            Bundle extras = getIntent().getExtras();
            if (extras == null) {
                newString = null;
            } else {
                newString = extras.getString(key);
            }
        } else {
            newString = (String) savedInstanceState.getSerializable(key);
        }
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                progDailog.show();
                view.loadUrl(url);

                return true;
            }

            @Override
            public void onPageFinished(WebView view, final String url) {
                progDailog.dismiss();
            }
        });
        webView.loadUrl(newString);
    }

}

newString - хорошая ссылка.нет ошибки в моей вкладке "logcat", и нет ошибки в моей вкладке "run".Но я не могу решить эту проблему.

Если у вас есть предложения, дайте мне знать.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Эй, похоже, вы используете Butterknife и забыли позвонить

Butterknife.bind(this);

Поскольку этот вызов будет связывать привязку Butterknife к веб-представлению.

0 голосов
/ 05 июля 2019

Вы загружаете URL-адрес в WebView, который никогда не добавляете на экран:

webView = new WebView(this);

И вы никогда не будете отображать его в макете.

Если у вас есть WebView вваш макет, вы, вероятно, хотели бы использовать его как

webView = findViewById(R.id.<something>);

вместо

webView = new WebView(this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...