apk交互时保留页面框架

来源:互联网 发布:java工程师就业班 编辑:程序博客网 时间:2024/06/06 08:45

2个apk交互:

A是浏览器apk,负责加载显示页面;

B是launcher apk,开机先加载A进行身份认证并加载相应的top页面,

最后完成跳转通过JS接口启动B进入launcher界面,

在B的launcher界面可以进入各子栏目,进入子栏目即启动A,浏览器显示相应页面。

在A中又可以一层层返回最后通过接口启动B返回到launcher界面。

本文要说的是在B的launcher界面,进入子栏目,启动A时会给A传递一个URL,

浏览器会去加载该URL,问题就在于该URL需要调用A开机时加载的top页面中的一些JS函数,

该URL页面中有一些top.xxx(); 其中xxx()函数就是top页面的JS函数。

所以我们需要保留页面框架,找到top页面,否则会导致JS报错,页面加载失败。

寻找并加载top页面即可实现保留页面框架,具体如下:

1、调用evaluateJavascript()来异步执行JavaScript代码

      mWebView.evaluateJavascript(js,null);

      其中js为查找top页面的一个js函数,js是String类型,如:

String js = “function LoadEpgUrl(url){
alert("find the top frame url");
}”;

mWebView.evaluateJavascript(js,null);


2、在传递的URL页面寻找top页面:

        alert("window.top.location.href:"+window.top.location.href);

     a) 在top页面通过标签元素的ID进行查找:

var frame = window.top.document.getElementById("EPG");

     b) 在top页面通过标签元素的Name进行查找:

var frame = window.top.document.getElementsByName("mainWin")[0];

     若frame不为空,则表示找到的top页面为有效top页面;

     否则将传递的参数URL作为top页面地址。


如此即实现了保留页面框架。


0 0
原创粉丝点击