解决 uniapp 导航栏 (H5) 两个导航栏一样的问题

1,610 阅读1分钟

遇到的问题:

uniapp 开发 h5 页面,调试过程中显示正常,但是在微信链接中打开时会出现两个导航栏的问题

原因:

微信里点开的链接是在微信的 webview 容器打开的,所以还是属于微信里面,微信的标题会在h5标题之上

解决方法:

  1. 通过设置pages.json 中的导航栏样式,来取消默认的原生导航栏

    "globalStyle": {
    
        "navigationStyle": "custom"
    
      }
    

    这样的效果就是 微信的 webview 和 H5 页面都不会显示导航栏

  2. 以 webview 为例,固定显示 webview 自带的导航栏名字,相关页面手动添加对应页面内容的导航栏名字

       // 在此之前,需将 路由路径中 style 中设置的 navigationBarTitleText 属性 去掉 
       "pages": [
          {
          "path": "pages/index/index",
          "style": {
            // "navigationBarTitleText": "首页"
          }
        },
       ]"globalStyle": {
        "navigationBarTitleText": "webview",
      }
    

    在相关页面单独添加页面导航栏名字

    
      mounted() {
        var a = document.getElementsByClassName('uni-page-head__title')[0];
        a.textContent = '首页';
      },
    

    手机微信链接图例

    image.png

    H5 图例

    image.png