Как прочитать URL-адрес нажатой ссылки в WebView, не переходя на новый URL-адрес? - PullRequest
1 голос
/ 04 февраля 2020

У меня есть Webiew. Я хочу прочитать URL-адрес нажатой ссылки, но Webiew не должен go этот URL-адрес. WebView должен оставаться на той же странице.

Пример: пользователь нажимает кнопку "{ ссылка }" и приложение читает эту ссылку. Но WebView должен все еще оставаться на "{ ссылка }" без refre sh. Я могу прочитать URL нажатой ссылки, но не могу остановить WebView, он переходит на новый URL.

1 Ответ

0 голосов
/ 04 февраля 2020

Как @ Sudhee sh предлагает вам расширить WebView и предоставить новую реализацию shouldOverrideUrlLoading . Это тот же случай события веб-просмотра onclick для конкретной c ссылки в этом веб-просмотре .

Я думаю, вам следует избегать вызова super.shouldOverrideUrlLoading(view, url); для предотвращения поведения по умолчанию.

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView wv = (WebView) findViewById(R.id.myWebView);
        wv.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if(isURLMatching(url)) {
                    openNextActivity();
                    return true;
                }
                //return super.shouldOverrideUrlLoading(view, url);
                return false;
            }
        });
    }

    protected boolean isURLMatching(String url) {
            // some logic to match the URL would be safe to have here
        return true;
    }

    protected void openNextActivity() {
        Intent intent = new Intent(this, MyNextActivity.class);
        startActivity(intent);
    }
...