用UNAIPP写APP怎么获取当前页面的标题?

uniapp 写APP怎么获取当前页面的标题

        let pages = getCurrentPages();
        var page = pages[pages.length - 1];
        // #ifdef APP-PLUS
        var currentWebview = page.$getAppWebview();
        console.log('能获取标题吗', JSON.stringify(currentWebview.getStyle()))
        p.pagename = 'no';
        p.pageurl = currentWebview.__uniapp_route;
        // #endif
        // #ifdef H5
        p.pagename = page.$holder.navigationBarTitleText;
        p.pageurl = page.__page__.fullPath;
        // #endif

浏览了HTML5+ 的api文档,基本都尝试了里面的API,就是没有获取到页面的标题。
https://www.html5plus.org/doc/zh_cn/webview.html#plus.webview...

阅读 2.6k
3 个回答

一级菜单获取的是undefined,但是二级菜单能获取到了,我这个问题官方有实现吗,怎么AI都不给我回答了

补充一下,页面标题写在pages.json 里面

{
     "path" : "pages/payment/OrderConfirm",
      "style" :                                                                                    
            {
                "navigationBarTitleText": "收银",
                "enablePullDownRefresh": false
            }
}

因为我有些页面有些用到的自定义标题,所以获取不到、用了自定义标题组件需要获取标题在组件内部拿到了

另辟蹊径,可以把pages.json(根据自己的实际路径) 文件导入进来,然后查找对应的配置。

import { pages, globalStyle } from './pages.json'

/**
 * 获取current page
 */
function getCurrPage() {
  try {
    let pages = getCurrentPages()
    if (pages.length) {
      return pages[pages.length - 1]
    }
  } catch (e) {}
  return undefined
}

/**
 * 获取当前页面标题
 */
export function getNavigationBarTitle() {
  var page = getCurrPage()
  if (page) {
    const data = pages.find(item => item.path === page.route)
    return (
      data.style?.navigationBarTitleText || globalStyle.navigationBarTitleText
    )
  }
}

image.png
需要先在pages.json里配置好

const pages =  getCurrentPages()
const page = pages[pages.length - 1]
const t = page.$page.meta.navigationBar.titleText
console.log(t) // 表单验证演示
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题