Ограничить обработку касаний WebView ссылками - PullRequest
3 голосов
/ 03 февраля 2011

Можно ли захватывать события касания через WebView в действии, которое его содержит, без потери функциональности ссылок?

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

Как это можно сделать?

Ответы [ 4 ]

0 голосов
/ 27 марта 2012

Или вы можете отслеживать трассировку стека для:

android.webkit.CallbackProxy.uiOverrideUrlLoading()

См. http://www.javapractices.com/topic/TopicAction.do?Id=78, чтобы узнать, как определить трассировку стека с помощью метода throwable (созданного в переопределенном методе WebView.loadUrl ()).

0 голосов
/ 03 февраля 2011

Если я правильно понимаю ваш вопрос, было бы трудно понять, является ли что-то ссылкой или нет в onTouchEvent(), поскольку все, что он знает, это координаты X, Y (не html). Тем не менее, мне кажется, что вы, вероятно, могли бы использовать часть привязки javascript в WebView, чтобы javascript решал, является ли что-то ссылкой или нет, и действовал соответствующим образом. Опять же, я не делал этого раньше и не проверял это ... просто мысли вслух.

0 голосов
/ 14 августа 2011

При инициализации WebView попробуйте:

mWebView.setWebViewClient(new WebViewClientOverrider());

Затем создайте приватный класс:

private class WebViewClientOverrider extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        //TODO handle the link  
        return true;
    }
}

Наконец, замените TODO обрабатывать строку на ваш собственный код для обработки выбора ссылки.

0 голосов
/ 03 февраля 2011

Да, это так.

(я не могу более подробно остановиться на этом, если вы не будете более конкретны по своему вопросу.)

...