Вы можете использовать пользовательскую схему 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();")