Проверка URL с помощью WebView - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю приложение в Android Studio. Используя webview , и я хочу что-то подобное.«если URL не может загрузить и показать что-то вроде снимка экрана , тогда мое приложение покажет тост с надписью Неверный URL .»и если URL загружен правильно, тост покажет правильный URL .

Как я могу это сделать.

enter image description here

MainActivity.Java

public class MainActivity extends AppCompatActivity {

WebView mWebv;
ProgressBar spinner;
private String main_url = "http://my.wifi/";

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

    spinner = findViewById(R.id.webview_spinner);

    mWebv = findViewById(R.id.web_view);
    WebSettings settings = mWebv.getSettings();
    settings.setJavaScriptEnabled(true);


    mWebv.setWebViewClient(new WebViewClient(){

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            spinner.setVisibility(View.VISIBLE);
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            spinner.setVisibility(View.GONE);
        }
    });
    mWebv.getSettings().setJavaScriptEnabled(true);
    mWebv.loadUrl(main_url);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (mWebv.canGoBack()) {
                    mWebv.goBack();
                } else {
                    finish();
                }
                return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

1 Ответ

0 голосов
/ 08 февраля 2019

Просто переопределите этот метод в вашем setWebViewClient

 mWebv.setWebViewClient(new WebViewClient(){
    ...
    @SuppressWarnings("deprecation")
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
    {
    // do some stuff
    }

    @TargetApi(android.os.Build.VERSION_CODES.M)
    @Override
    public void onReceivedError(WebView inView, WebResourceRequest inReq,WebResourceError inError) 
    {
    // do some stuff
    onReceivedError(inView, inError.getErrorCode(), inError.getDescription().toString(), inReq.getUrl().toString());
    }
});

Спасибо @ newton_cr7 за редактирование предложения

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