安卓调用webview中iframe定义方法(适用于数据回调给webview)

admin2年前实践出真知931

首先在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')");


相关文章

关于时间的处理(时间范围生成,mysql按照天,周,月统计)

mysql的查询语句 #周  select FROM_UNIXTIME(create_time,'%Y%u') weeks,count(cas...

记一次博客的迁移(Ubuntu安装docker部署博客)

一、docker的安装更新源#apt-get update安装依赖#apt-get install \     apt-tran...

记录一次docker安装mysql8.3

配置文件 /data/mysql8-data/conf/my.cnf[mysql] # 设置mysql控制台默认字符集 default-character-set=utf8mb4 #&...

linux下利用nc监听端口的玩法

ubuntu/debian开机启动设置,移步这里家里有一些小服务器玩具,由于家里网络都是dhcp获取ip地址,ip地址可能会出现变动。那么如果在服务器上监听一个特殊端口,通过内网扫描指定的特殊端口,即...

thinkphp3.2一个复杂的查询语句

function buildWhere($where = array(), $searchFields = ''){    if(empty($searchFiel...

PHP造一个$_PUT

$_PUT = array(); if ('PUT' == $_SERVER['REQUEST_METHOD'])&...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。