技术问题记录

时间:2024-03-16 18:01:04

这里写自定义目录标题

  • 遇到的问题
    • 微信小程序&uniapp
      • 1.0.0、微信小程序中非一级页面,用户点击返回,要能够中断做业务处理;
      • 1.0.1、微信小程序中,不允许用户返回上一页的操作(同上另外解决方案)

遇到的问题

微信小程序&uniapp

1.0.0、微信小程序中非一级页面,用户点击返回,要能够中断做业务处理;

// 1、在 pages.json 的 pages 配置项下, 修改 pages/index/index 页面的配置如下:
"pages": [
	{
		"path": "pages/index/index",
		"style": {
			"navigationBarTitleText": "uni-app",
			"navigationStyle":"custom"
		}
	}
],

// pages/index/index 代码为
<template>
	<view>
		<!-- 自定义导航栏 -->
		<view class="navBarBox">
			<!-- 状态栏占位 -->
			<view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view>
			<!-- 真正的导航栏内容 -->
			<view class="navBar">
				<image class="logo" src="/static/logo.png" mode="scaleToFill"></image>
				<view>我是导航栏标题</view>
			</view>
		</view>
		<!-- 页面内容 -->
		<view>我是页面内容</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				// 状态栏高度
				statusBarHeight: 0,
				// 导航栏高度
				navBarHeight: 82+11,
			};
		},
		props: {
			
		},
		//第一次加载时调用
		created() {
			//获取手机状态栏高度
			this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
		},
	}
</script>

<style>
.navBarBox{}
.navBarBox .statusBar {}
.navBarBox .navBar {
	padding: 3rpx 50rpx;
	padding-bottom: 8rpx;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}
.navBarBox .navBar .logo {
	width: 82rpx;
	height: 82rpx;
	margin-right: 10rpx;
}
</style>

说明:

  • 页面加载后,计算导航栏高度。
  • 得到状态栏高度后,将状态栏高度赋值给状态栏占位元素。这样就空出了状态栏。注意状态栏的单位为px,其它地方使用的单位为rpx。
  • 导航栏中放置一个image元素,用于展示LOGO。再放一个view元素,用于展示标题。

原文字地址,写的非常不错

1.0.1、微信小程序中,不允许用户返回上一页的操作(同上另外解决方案)

微信小程序中,不允许用户返回上一页的操作

//用wx.redirectTo来做跳转页面
 wx.redirectTo({
    url: '/pages/index/index'
})

但是用了这个之后会发现小程序左上角会多了一个home的小按钮,可以在onShow中添加wx.hideHomeButton(),即可消除

onShow: function () {
    wx.hideHomeButton()
  },