1. 抽离底部导航归属逻辑为纯函数resolveEntryTab,优化分包页面高亮规则,对齐iOS HIG规范 2. 新增页面Tab通配符映射,简化PAGE_TAB_MAP维护 3. 修复鸿蒙平台webview返回按钮适配问题 4. 新增pages.json校验与导航标题自动注入脚本 5. 优化启动页动画性能,提升合成渲染效率 6. 修复diy-picture组件v-for缺少key的警告 7. 清理鸿蒙平台多余的分包构建配置 8. 更新统计数据与store注释说明
83 lines
1.8 KiB
Vue
83 lines
1.8 KiB
Vue
<template>
|
||
<view :style="themeColor">
|
||
<!-- #ifndef MP-HARMONY -->
|
||
<view class="iconfont iconshang navigate-back" @click="navigateBack"></view>
|
||
<!-- #endif -->
|
||
<web-view :src="src" @titleUpdate="updateNavbarTitle"></web-view>
|
||
|
||
<!-- #ifdef MP-HARMONY -->
|
||
<cover-view class="iconfont iconshang navigate-back" @click="navigateBack"></cover-view>
|
||
<!-- #endif -->
|
||
|
||
<!-- 隐私弹窗 -->
|
||
<privacy-popup ref="privacyPopup"></privacy-popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { decodeEntity } from '@/common/js/util.js';
|
||
|
||
|
||
/**
|
||
* 必须真机调试
|
||
* 在微信模拟器中,行为和真机不一样
|
||
* 1. 模拟器中,设置标题不生效,但是,在真机是可以的。
|
||
*/
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
src: '',
|
||
title: '', // 标题栏标题
|
||
enableSetTitle: false, // 是否强制设置标题,用来替换Webview中的默认标题
|
||
};
|
||
},
|
||
onLoad(option) {
|
||
this.title = decodeURIComponent(option?.title ?? '');
|
||
this.enableSetTitle = decodeURIComponent(option?.enable_set_title) == 1;
|
||
|
||
// #ifdef H5
|
||
this.src = decodeEntity(decodeURIComponent(option.src));
|
||
// #endif
|
||
|
||
// #ifndef H5
|
||
this.src = decodeEntity(decodeURIComponent(`${option.src}&from=mp-webview`));
|
||
// #endif
|
||
},
|
||
onShow() {
|
||
this.updateNavbarTitle();
|
||
},
|
||
watch: {
|
||
title(newVal) {
|
||
this.updateNavbarTitle(newVal);
|
||
},
|
||
enableSetTitle() {
|
||
this.updateNavbarTitle();
|
||
}
|
||
},
|
||
methods: {
|
||
navigateBack() {
|
||
uni.navigateBack({
|
||
delta: 1
|
||
});
|
||
},
|
||
updateNavbarTitle(newTitle) {
|
||
const title = newTitle ?? this.title;
|
||
if (this.enableSetTitle) {
|
||
uni.setNavigationBarTitle({title});
|
||
}
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.navigate-back {
|
||
position: absolute;
|
||
top: 34rpx;
|
||
left: 34rpx;
|
||
z-index: 5;
|
||
font-size: $font-size-toolbar;
|
||
}
|
||
</style>
|