sam*_*wei 3 android callback webview
我正在研究一个Android项目,并且有一个关于如何在不同的webview中进行回调的问题.我也在项目中使用了JSInterface.这里我有2个网页浏览量.一个有一个索引页面,另一个是一个叠加层(虽然仍然是一个html页面.)我想要做的是,如果任何用户点击叠加层上的某些链接,它应该触发一个回调函数,该函数写在java文件中,其中索引页面通过JSInterface连接.这可能听起来令人困惑,但我画了一些东西来帮助说清楚!
谢谢!
您可以使用myurl://函数等自定义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;
}
Run Code Online (Sandbox Code Playgroud)
我使用startsWith检查这个快速和脏的示例的URL,但是您应该考虑使用android.net.Uri.parse来解析URL.
这应该允许您调用Java函数foo()而无需通过第一个WebView.
如果你想要浏览第一个webview,那么可以像这样在JSInterface上调用一个函数(其中webView1是通过findViewById检索的第一个WebView):
webView1.loadUrl("javascript:myjsinterface.myjsfunc();")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8548 次 |
| 最近记录: |