8***@qq.com
8***@qq.com
  • 发布:2023-09-11 14:56
  • 更新:2024-01-01 19:20
  • 阅读:2301

uniapp 小程序中如何获取页面标题??

分类:uni小程序sdk

目前有个需求,想要获取当前页面在page.json中设置的 navigationBarTitleText 属性值,在小程序中没有查到相应的api,不知道有什么处理方案?

2023-09-11 14:56 负责人:无 分享
已邀请:

最佳回复

GoodAr

GoodAr

import pagesjson from "@/pages.json";  
// import { reactive } from "vue";  

export function usePages() {  
  // const style = reactive({});  
  function getCurrentPage() {  
    const pages = getCurrentPages();  
    // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组  
    return `${pages[pages.length - 1]?.route ?? ""}`;  
  }  
  function getCurrentStyle() {  
    const route = getCurrentPage();  

    const getCurrentStyle = pagesjson.pages.find((item) => item.path == route);  

    return getCurrentStyle.style ?? undefined;  
  }  
  function getCurrentTitle() {  
    const style = getCurrentStyle();  
    return style ? style.navigationBarTitleText : "";  
  }  

  return {  
    getCurrentPage,  
    getCurrentStyle,  
    getCurrentTitle,  
  };  
}

在需要获取的界面使用 :

  const { getCurrentTitle } = usePages();  
  console.log(getCurrentTitle());
喜欢技术的前端

喜欢技术的前端 - QQ---445849201

刚研究了,动态生成pages.json,对于你这个需求可以将pages.json 修改为 pages.js, module.exports,再获取到当前页面,就可以知道 配置的标题


onLoad() {  
            console.log(this.route)  
        },  

module.exports = {  
    "globalStyle": {  
        "navigationBarTextStyle": "black",  
        "navigationBarTitleText": "uni-app",  
        "navigationBarBackgroundColor": "#F8F8F8",  
        "backgroundColor": "#F8F8F8"  
    },  
    "uniIdRouter": {},  
    "pages": [  
      {  
        "path": "pages/process/ProcessList",  
        "name": "ProcessList",  
        "style": {  
          "navigationBarTitleText": "流程列表"  
        }  
      },  
      {  
        "path": "pages/user/me",  
        "style": {  
          "navigationBarTitleText": "个人中心"  
        }  
      },  
      {  
        "path": "pages/user/Logout",  
        "style": {  
          "navigationBarTitleText": "退出"  
        }  
      }  
    ]  
}  
  • 8***@qq.com (作者)

    我找到了一个属性:


    let pages = getCurrentPages(),

    current = pages[pages.length - 1]; // 获取到当前页面的信息


    let pageInfo = __wxConfig.page[${current.route}.html]; // 内部属性


    return pageInfo.window.navigationBarTitleText;

    2023-09-12 16:08

  • 喜欢技术的前端

    回复 8***@qq.com: 666

    2023-09-12 23:07

  • 夏夜追凉丶

    回复 8***@qq.com: 这个方式在小程序第一次加载的时候会报错,获取不到

    2023-12-01 12:49

  • GoodAr

    看了一下网上的动态配置pages,最终是用于【动态】编译 pages.json,如果只是为了获取title,还不如直接试试导入json

    2024-01-01 19:30

要回复问题请先登录注册