From 6c3f90bf96ed204febc78e7fe9d54ff9699f6466 Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Wed, 15 Jul 2026 10:38:31 +0800 Subject: [PATCH] feat(webview): add dynamic navigation bar title setting function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增webview页面根据传入参数动态设置导航栏标题的功能,支持通过enable_set_title参数控制是否强制替换默认标题,通过title参数传递自定义标题内容。 --- pages_tool/webview/webview.vue | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/pages_tool/webview/webview.vue b/pages_tool/webview/webview.vue index bd9f928..41717d6 100644 --- a/pages_tool/webview/webview.vue +++ b/pages_tool/webview/webview.vue @@ -14,10 +14,15 @@ import { decodeEntity } from '@/common/js/util.js'; export default { data() { return { - src: '' + src: '', + title: '', // 标题栏标题 + enableSetTitle: false, // 是否强制设置标题,用来替换Webview中的默认标题 }; }, onLoad(option) { + this.title = option?.title ?? ''; + this.enableSetTitle = option?.enable_set_title == 1; + // #ifdef H5 this.src = decodeEntity(decodeURIComponent(option.src)); // #endif @@ -26,11 +31,32 @@ export default { this.src = decodeEntity(decodeURIComponent(`${option.src}&from=mp-webview`)); // #endif }, + onReady() { + this.updateNavbarTitle(); + }, + onShow() { + this.updateNavbarTitle(); + }, + watch: { + title(newVal) { + this.updateNavbarTitle(newVal); + }, + enableSetTitle() { + this.updateNavbarTitle(); + } + }, methods: { navigateBack() { uni.navigateBack({ delta: 1 }); + }, + updateNavbarTitle(newTitle) { + if (this.enableSetTitle) { + uni.setNavigationBarTitle({ + title: newTitle ?? this.title + }); + } } } };