我现在正在进行一个安卓项目,关于如何在不同的Webview中执行回调,我有一个问题。我也在我的项目中使用了JSInterface。这里我有两个Webview。其中一个有一个索引页,另一个是一个覆盖层(尽管仍然是一个HTML页面)。我想做的是,如果任何用户点击覆盖层上的某些链接,它应该触发一个回调函数,该函数写在与JSInterface连接的索引页面所在的Java文件中。这可能听起来很困惑,但我画了一些东西来帮助澄清!谢谢!
![enter image description here](https://istack.dev59.com/H5Uws.webp)
您可以使用类似myurl://function的自定义URL方案来创建功能链接。然后编写WebView的shouldOverrideUrlLoading事件的事件处理程序,决定如何处理URL:要么指示WebView加载它,要么执行某些自定义操作。
@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;
}
webView1.loadUrl("javascript:myjsinterface.myjsfunc();")