Мое веб-представление открывает веб-страницу в браузере по умолчанию - PullRequest
0 голосов
/ 23 июня 2019

Итак, я только что реализовал простое веб-приложение, в котором загружал главную страницу stackoverflow.Раньше все работало нормально, но теперь, когда я нажимаю на какую-то ссылку, она открывается в браузере по умолчанию.Я реализовал и переопределил метод shouldoverrideUrlLoading, создав свой собственный класс webViewClient.Я знаю, что есть разные вопросы, подобные этим, но я пишу этот вопрос только потому, что они не работают для меня.

public class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(Uri.parse(url).getHost().endsWith(".com"))
            return false;
        Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }

}

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new MyWebViewClient());

        final customEditText editText = findViewById(R.id.urlEditText);
        Button button = findViewById(R.id.enterButtonId);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                webView.loadUrl("https://"+editText.getText().toString().trim().toLowerCase());
            }
        });

    }

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Итак, когда я читал учебное пособие https://www.journaldev.com/9333/android-webview-example-tutorial, в нем указано, что если метод shouldOverrideUrlLoading () предоставляет значение false, то URL-адрес открывается в нашем веб-представлении, и если он возвращает значение true, он не будет загружать страницу в все. Поэтому я думаю, что раньше мой код работал потому, что я открывал веб-сайты с расширением .com, но когда я открывал другой веб-сайт с расширениями, он перенаправлялся в браузер по умолчанию.

0 голосов
/ 23 июня 2019

Вы можете использовать это: webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("url"); Просто внедрите веб-клиент и установите его перед loadUrl. Самый простой способ:

WebView.setWebViewClient(new WebViewClient());

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