劉先森
劉先森
  • 发布:2018-07-25 12:01
  • 更新:2018-08-14 17:42
  • 阅读:1814

webview模式底部选项卡,子页面打开新页面。返回选项卡时底部消失

分类:HTML5+

入口main页面。配置的底部四个tab

在首页的header 点击搜索icon,打开搜索页面

打开搜索页面之后,在搜索结果页面展示搜索结果,并悬浮一个购物车的按钮,点击购物车按钮,跳转或返回至选项卡的第三个tab子页面购物车(cart.html).

使用如下方法,第一个返回至选项卡的第一个tab子页面,第二个跳转到了购物车页面,但是没有显示底部的选项卡图标,何解?

2018-07-25 12:01 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com

不能直接用open的方法 我这边是这样处理的 main 页面去做一个监听 监听别的页面过来的方法去执行点击按钮 然后更改他的main图标的选中状态

  • 劉先森 (作者)

    下面是改进之后的代码,可以成功跳转到购物车,但是底部的Tab高亮没有更改过来,还是第一个tab的icon是高亮颜色,本打算用show之后的回调,但是show之后获取不到页面的任何元素,想请问一下,你在main页面是如何监听的,可否看下完整代码,谢谢


                          var main = plus.webview.getLaunchWebview();  
    var current = plus.webview.currentWebview();
    var webviewIndex = plus.webview.getWebviewById('index.html');
    var webviewTypeList = plus.webview.getWebviewById('typeList.html');
    var webviewCart = plus.webview.getWebviewById('cart.html');
    var webviewUser = plus.webview.getWebviewById('userCenter.html');
    webviewIndex.hide();
    webviewTypeList.hide();
    webviewUser.hide();

    webviewCart.show();

    plus.webview.show(main,"slide-in-right",2000,function(){
    var cartWeb = document.getElementById("cart");
    var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");
    if(cartWeb !== current) {

    $(current).removeClass('mui-active');
    current.classList.remove('mui-active');
    cartWeb.classList.add('mui-active');
    }
    })

    2018-07-31 10:38

  • 8***@qq.com

    这个是其他页面得js去调用main页面得监听事件

    var main = plus.webview.getWebviewById("main.html");

    console.log(JSON.stringify(main))

    mui.fire(main, 'click_task');


    下面这个方法是在mian页面得js 因为页面得html在main页面所以你只能在mian页面去执行修改底部tab得选中状态

    document.addEventListener("click_task", function(event) {

    console.log("点击查看专题列表");

    var btn = document.getElementsByClassName("mui-tab-item")[3];

    mui.trigger(btn, 'tap');

    var parent = btn.parentNode;

    var chlidren = parent.children;

    for(var i = 0; i < chlidren.length; i++) {

    chlidren[i].classList.remove("mui-active");

    }

    chlidren[3].classList.add("mui-active");

    })

    2018-08-07 09:03

劉先森

劉先森 (作者)

劉先森

劉先森 (作者)

已经解决,如果有后来者遇到这个问题,请详细参考demo中给出的例子
tab-webview-subpage-setting.html 中点击about 回到主页,
由此,可以在main中自定义接受方法,实现跳转指定tab。

  • 1***@qq.com

    我也是遇到你这样的问题,就是tittle和底部高亮一直显示的是第一个怎么改啊

    2018-08-22 06:57

  • 1***@qq.com

    我试了楼上的代码,可是不行

    2018-08-22 07:18

DCloud_heavensoft

DCloud_heavensoft

不建议使用webview模式选项卡,性能不好,推荐改用NView的选项卡。

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

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容