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

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

阅读 328
1 个回答

通过JavaScript桥接:

  • 在主页面中注入JavaScript接口,然后通过主页面的JavaScript代码与iframe中的JavaScript代码进行通信。
例如,可以在主页面中定义一个全局函数,通过postMessage与iframe通信:
// 主页面中的JavaScript代码
window.addEventListener("message", function(event) {
    if (event.data.action === "createMediaPlayer") {
        // 调用Android的MediaPlayer接口
        window.AndroidInterface.createMediaPlayer();
    }
});

// iframe中的JavaScript代码
function createMediaPlayer() {
    window.parent.postMessage({ action: "createMediaPlayer" }, "*");
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
项目管理
子站问答
访问
宣传栏