Как обрабатывать обратные вызовы в веб-просмотре - PullRequest
3 голосов
/ 28 декабря 2011

Я сейчас работаю над проектом Android и у меня есть вопрос о том, как делать обратные вызовы в различных веб-обозрениях.Я также использовал JSInterface для своего проекта.Здесь у меня есть 2 просмотра.У одного есть страница индекса, пыльник - это оверлей (хотя это все-таки страница html). Что я хочу сделать, так это то, что если кто-то нажимает на некоторые ссылки в оверлее, он должен запускать функцию обратного вызова, которая написана в Java-файле, гдеСтраница индекса была подключена через JSInterface.Это может показаться странным, но я должен нарисовать что-то, чтобы прояснить ситуацию!

Спасибо! enter image description here

1 Ответ

8 голосов
/ 28 декабря 2011

Вы можете использовать пользовательскую схему URL, например, myurl: // function для ваших функциональных ссылок.Затем напишите обработчик события для события WebOView shouldOverrideUrlLoading, в котором вы решаете, как обрабатывать URL-адрес: либо поручите веб-представлению загрузить его, либо выполните какое-либо настраиваемое действие.

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)  
{  
    if (url.startsWith("myurl://"))  
    {  
        // Parse further to extract function and do custom action  
    }
    else  
    {  
        // Load the page via the webview
        view.loadUrl(url);  
    }  
    return true;  
}  

Я использовал startWith для проверки URL-адресадля этого быстрого и грязного примера, но вы должны рассмотреть возможность использования android.net.Uri.parse для разбора URL.

Это должно позволить вам вызывать функцию Java foo () без необходимости проходить через первый WebView.

Если вы хотите просмотреть первое веб-представление, вы можете вызвать функцию на JSInterface следующим образом (где webView1 - это первое веб-представление, полученное с помощью findViewById):

webView1.loadUrl("javascript:myjsinterface.myjsfunc();")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...