安卓调用webview中iframe定义方法(适用于数据回调给webview)
首先在html中用js获取到当前页面的层级
//递归获取当前嵌套在iframe页面的层级位置 function getSelfWindowPath(win, index){ if(win.parent.frames.length > 0){ for(var i = 0; i < win.parent.frames.length; i++){ if(win.parent.frames[i] === win){ return 'window.frames[' + index + '].' + getSelfWindowPath(win.parent.frames[i].parent, i); } } } return 'window'; } //把这个传给原生安卓 var windowPath = getSelfWindowPath(window, index); //原生安卓要调用的方法 function commeCallme(msg){ alert('被调用了' + msg); }
将以上位置传给原生安卓
原生安卓中直接
//windowPath 为传过来的层级信息 mWebView.loadUrl("javascript:" + windowPath + ".commeCallme('message')");