1.修改導航欄buttons
如圖動態修改角標
<template> <view> </view> </template> <script> export default { data(){ return{ } }, //監聽頭部導航紅點事件 onNavigationBarButtonTap(e) { if(e.index==0){//系統消息 uni.navigateTo({ url:"../news/news" }) } }, mounted(){ //動態設置導航欄角標,0為從右往左數第一個,true顯示還是隱藏角標或者紅點,最后一個顯示角標為多少 this.setStyle(0,false,''); }, methods:{ /** * 修改導航欄buttons * index[number] 修改的buttons 下標索引,最右邊索引為0 * show[boolean] 顯示還是隱藏角標或者紅點 * text[string] 需要修改的角標的text 內容 ,如果定義redDot 此參數無效 ,如果定義badgeText請設置具體,如果不用輸入 */ setStyle(index, show,text) { let pages = getCurrentPages(); let page = pages[pages.length - 1]; // #ifdef APP-PLUS let currentWebview = page.$getAppWebview(); if(show){ if(index === 0){ currentWebview.setTitleNViewButtonBadge({index:index,text:text}) }else{ currentWebview.showTitleNViewButtonRedDot({index:index,text:text}) } }else{ if(index === 0){ currentWebview.removeTitleNViewButtonBadge({index:index}) }else{ currentWebview.hideTitleNViewButtonRedDot({index:index}) } } // #endif }, } } </script> <style scoped="scoped" lang="scss"></style>
下面是官方demo實例方法
// #ifdef APP-PLUS var webView = this.$mp.page.$getAppWebview(); // 修改buttons // index: 按鈕索引, style {WebviewTitleNViewButtonStyles } webView.setTitleNViewButtonStyle(0, { text: 'hello', }); // 修改按鈕上的角標 // index: 按鈕索引, text: 角標文本內容 webView.setTitleNViewButtonBadge({ index: 0, text: 10, }); // 設置 searchInput的 focus // focus: true | false webView.setTitleNViewSearchInputFocus(true) // 設置 searchInput的 text webView.setTitleNViewSearchInputText(text) // searchInput 通過 webview 的 setStyle 方法進行更新 var tn = currentWebview.getStyle().titleNView; if (tn.buttons) { uni.getSystemInfo({ success:function(res){ if (res.platform=="ios") { // 這里在HBuilderX 1.9.9版本有個bug,searchInput的I變小寫了 ,臨時繞過下。更高版本會修復此bug tn.searchinput.placeholder = 'test'; currentWebview.setStyle({ titleNView: tn }); } else{ tn.searchInput.placeholder = 'test'; //這里有個已知bug,HBuilderX 1.9.9上,當searchInput位於首頁時,動態設置placehold會導致buttons的點擊事件消失。更高版本會修復此bug currentWebview.setStyle({ titleNView: tn }); } } }) } // #endif