为了解释我想实现的目标,我写了我能做的事情,然后 - 当出现问题时。什么工作得很好:无法在两个WebView之间进行通信
1)我有webView1
包含在加载的HTML
<button onclick="android.buttonPressed();">Click</button>
与接口绑定:
private class WebAppInterface1 {
Context context;
WebAppInterface1(Context c) {
context = c;
}
@JavascriptInterface
public void buttonPressed() {
Toast.makeText(context, "buttonPressed", Toast.LENGTH_LONG).show();
}
}
HTML按钮的作品。
2)我有一个包含在加载的HTML webView2
<script>
function f() {
document.write("bla bla bla");
}
</script>
然后我打电话
webView2.loadUrl("javascript:f();");
在Android的代码和它的作品了。
现在我想在webView1
按下按钮来修改webView2
的页面。从技术上讲,这意味着我想在webView2
内部调用f()
,当JS界面检测到点击webView1
时。所以我加这条线
webView2.loadUrl("javascript:f();");
in buttonPressed()
函数里面的JS接口。但它没有效果。什么会导致问题?连接这些接收者和发送者有没有任何限制?也许我错过了一些设置或权限?
有我的项目文件,我试图让他们尽可能简单:layout,html,java。没有编辑其他文件。如果需要,可以提供任何其他信息。
删除分号webView2.loadUrl( “JavaScript的:F()”); –
@AndyDeveloper不幸没有帮助 – Pavel