1***@qq.com
1***@qq.com
  • 发布:2017-11-14 10:11
  • 更新:2017-11-15 16:17
  • 阅读:2535

当打开多个webview时,关闭掉最上面的webview,如何获取接下来显示的webview的展现事件

分类:HTML5+

APP打开了很多个webview,,此时,按返回键或点击页面导航返回按钮关闭当前页面,如何在被关闭页面的下层webview(即将展现的webview)获取展现事件

plus.webview.currentWebview().addEventListener('show',function(){  

},false);

使用上面代码无效

2017-11-14 10:11 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

show 事件只有主动调用webviewObject.show()方法时才会触发。
不是很清楚你的具体需求,如果是想关闭某个页面后,通知到另一个页面执行后续操作的话,下面提供一种思路。
简单来说,就是先show目标页,执行后续操作,然后关闭之前的页面。因为webview被关闭的话,后续的代码是不会被执行的,所以只能是先通知执行后续操作,再销毁之前的webview。
举例,详情页关闭前,通知列表页刷新。
这是详情页的back重写

mui.back = function() {  
  var listWebview = plus.webview.getWebviewById('list');  
  listWebview.show('fade-in');  
};

这是列表页show事件的监听

var selfWebview = plus.webview.currentWebview();  
selfWebview.addEventListener('show', function() {  
  var detailWebview = plus.webview.getWebviewById('detail');  
  if(detailWebview) {  
    detailWebview.close('none');  
    //TODO 后续操作  
  }  
});
1***@qq.com

1***@qq.com (作者) - 搬砖的

这样也不行,我大概说下我的场景是怎样的

我APP有忘记密码重置密码操作
打开APP进入到 首页 ,然后点击用户中心,进入到未登录的用户中心页面, 点击登录按钮,进入到登录页面,点击忘记密码,进入发送手机验证码页面,接收验证码并填写好后点击下一步按钮,验证码有效情况下打开设置密码页面并在设置密码页面加载完成后关闭发送验证码页面

在这几个页面切换中,不同页面的状态栏字体颜色需要不同,因为顶部的背景色不同

目前还没有更好的方法来实现此功能,不知道有没有webview展现的事件监听

1***@qq.com

1***@qq.com (作者) - 搬砖的

已找到解决方案

在每个页面添加监听页面关闭事件,关闭时通知首页500毫秒后查找最顶端的webview,然后执行最顶端的webview指定函数即可

该问题目前已经被锁定, 无法添加新回复