UNI-APP开发中遇到的坑

一、页面无法回退

在页面中我们一般会在顶部左侧放置一个返回按钮,用户点击返回按钮则关闭当前页面,返回上一层页面。

		<uni-nav-bar left-icon="back" title="添加设备" color="#fff" background-color="transparent" @clickLeft="toSuperior"></uni-nav-bar>

toSuperior() {
				 
				uni.navigateBack({
					delta: 1
				});
			},

需求:当用户进行操作成功后,我们希望页面自动关闭,跳转回上一层页面。
我们在回调方法里这样写:

uni.showModal({
		content: "添加成功",
		showCancel: false,
	});
	that.superior();
superior() {
		uni.navigateBack({
		 	delta: 1
		 });
	},

这样会导致,页面有时无法正常跳转,而点击页面的回退按钮也没有任何反应,页面卡住在当前页面。这是无法容忍的。原因:uni-app中showModel会阻碍 uni.navigateBack跳转。
改进:

uni.showModal({
		content: "添加成功",
		showCancel: false,
		confirmText:'确定',
		success:()=>{
		that.superior();
		},
		complete:()=>{
			that.superior();
		}
	});
superior() {
		uni.navigateBack({
		 	delta: 1
		 });
	},

正常跳转!

二、列表页面下拉刷新不显示数据

举例,我们用如下代码展示一个列表:

<you-scroll ref="scroll" @onPullDown="onPullDown" @onScroll="onScroll" @onLoadMore="onLoadMore">
			<view class="">
				<scroll-view @scrolltolower="onLoadMore" @scrolltoupper="isToupper" :scroll-top="scrollTop"
					@scroll="scroll" style="height: 1400rpx;" scroll-y="true">
					<view class="item_box">
						<view class="item" v-for="item in dataList"  @click="toEquList(item)">
							<text class="icon iconfont left_icon">
								&#xe6bb;
									</text>
							<view class="box_left">
								<view class="title">
									用户名:{{item.deptName}}
								</view>	 
							</view>
						  </view>
					</view>
				</scroll-view>
			</view>
		</you-scroll>
onPullDown(done) { // 下拉刷新
				// console.log("下拉刷新事件调用");
				this.toupperShow = false;
				setTimeout(() => {
					this.shows = true;
					this.LoadingMore = "努力加载中...";
					this.dataList = [];
					this.pageNum = 1;
					this.curPageNumCount = 0;
					this.totalNumCount = 0;
					this.getDataList();
					done(); // 完成刷新
				}, 1000 * 1)
			},

getDataList (){
    let that = this;
				
				uni.request({
					url: this.config.apiHost + "/smoke/findMerchantById",
					method: 'POST',
					data: {
						"loginName": uni.getStorageSync('loginName'),
						"communityId": this.communityId,
						"merchantName": 	this.merchantName,
						"pageNum": this.pageNum,
						"pageSize": this.pageSize,
					},
					header: {
						'Authorization': uni.getStorageSync('accessToken'), //自定义请求头信息
					},
					success: (res) => {
						this.shows = false;
						console.log(res.data);
						var data = res.data;
						if (data.code==0) {
							data = data.data; // {}
=
							this.totalNumCount = data.total;
							
							let dataArr = data.rows;//[]
							that.curPageNumCount += dataArr.length;
							 
							if(dataArr && dataArr.length>0){
							    for(let i =0;i<dataArr.length; i++)
								    that.dataList[that.dataList.length] = dataArr[i];
							}
						}
								
}

问题:第一次进入页面,列表正常显示,下拉刷新后,列表消失。原因:数组赋值检测不到。解决方案:使用push给数组赋值或者如下方法。

改进:

that.dataList=[...that.dataList,...dataArr];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
uni-app开发app端时,可能会遇到以下一些安全性问题: 1. 客户端漏洞:在app端开发,客户端可能存在漏洞,例如不安全的代码编写、未经验证的输入等。攻击者可以利用这些漏洞进行代码注入、跨站脚本攻击(XSS)等。 2. 数据传输安全:在app端与服务器之间的数据传输过程,如果没有适当的加密机制,攻击者可能会截获敏感数据。因此,使用HTTPS协议进行数据传输是一个重要的安全措施。 3. 身份验证与授权:在app,用户的身份验证和授权是非常重要的。如果身份验证机制存在漏洞,攻击者可以冒充合法用户的身份进行恶意操作。因此,需要使用安全的身份验证和授权机制,例如使用令牌(Token)进行用户身份验证。 4. 代码混淆与反编译:由于uni-app开发app是基于前端技术实现的,攻击者可以通过反编译app获取源代码,并进行逆向工程分析。为了增加代码的安全性,可以采用代码混淆技术来对代码进行保护。 5. 动态加载与远程代码执行:uni-app支持动态加载远程代码的功能,这也增加了一定的安全风险。如果不对加载的代码进行有效的验证和过滤,攻击者可以通过远程代码执行漏洞进行攻击。 为了提高app端的安全性,开发者可以采取以下措施: - 定期更新与升级:及时更新uni-app框架和相关插件,以修复已知的安全漏洞。 - 代码审计与测试:进行代码审计,发现潜在的安全问题,并进行相关测试以确保代码的安全性。 - 安全编码实践:采用安全编码实践,例如避免使用不安全的函数、过滤用户输入等。 - 强化身份验证与授权:使用安全的身份验证和授权机制,例如使用双因素身份验证、限制权限等。 - 加密与传输安全:使用合适的加密算法和协议保护数据传输的安全性。 以上是一些常见的uni-app开发app端时可能遇到的安全性问题和相应的解决方案。开发者在开发过程应该注重安全性并采取相应的措施来保护用户数据和应用程序的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oyezitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值