如何在webView中加载HTML页面时候向HTML及嵌套的iframe注入js代码?

在webView中,加载了HTML页面后,由于在js使用一个 new MediaPlayer()实例。所以在Android中需要完成对应的类方法。但是在注入时,会发现无法在HTML的iframe注入实例。也就是说,无法在iframe进行new MediaPlayer();

阅读 934
1 个回答

通过桥接机制: 使用WebView的JavaScript接口(JavaScriptInterface)来桥接Java和JavaScript之间的通信。可以在主页面中定义一个接口方法,然后在iframe中调用这个方法。

例如
// Java代码
public class WebAppInterface {
    @JavascriptInterface
    public void createMediaPlayer() {
        // 创建MediaPlayer实例的逻辑
    }
}

webView.addJavascriptInterface(new WebAppInterface(), "Android");

// HTML/JavaScript代码
<iframe id="myIframe" src="iframe.html"></iframe>
<script>
    var iframe = document.getElementById('myIframe');
    iframe.onload = function() {
        iframe.contentWindow.Android.createMediaPlayer();
    };
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
项目管理
子站问答
访问
宣传栏