关于用MUI开发APP的一个小总结

27 篇文章 0 订阅
18 篇文章 0 订阅

最近做的一个项目,是关于房产的一个app;由于只会前端的一点东西,也没有任何的开发经验,所以所做的一切都是百度找的,最后找到了MUI这个框架,说是最接近原生APP的一个框架,反正我啥也不会,就这么用吧;

总结一点问题
一,关于固定定位的问题
其实在IOS下固定定位并不稳定,特别是在用户输入内容的时候,固定定位就会出问题,其实我是比较想用绝对定位来模拟固定定位的,但是因为很多东西不是很熟悉,加上MUI框架都是这么用固定定位的,所以这种小bug我也就没管了

二,沉浸式导航的问题
在我们做沉浸式导航的时候,是需要在配置文件manifest.json里的plus的节点下的statusbar对象里设置”immersed”: true,这样确实是设置好了沉浸式,但是这样你会发现你的头部完全都跑到状态上去了,所以我们的做法就是会给头部加一个padding值,然后因为不同的手机的状态栏高度是不一样的,所以我们需要动态去计算出状态栏的高度,然后给相应的padding-top值;当然MUI框架的头部都设置了box-size:border-box;所以我们还需要设置高度,这个都只是CSS的问题而已,这样做也不是什么问题;一切都没什么问题,不过个人感觉这样做不太好,因为状态栏的颜色什么的不好设置;感觉不要给头部设置什么高度或者padding,其实直接在打开页面的时候就设置状态栏的颜色,这样会靠谱一些

三,自定义事件的兼容问题
安卓手机上都没什么问题,但是在IOS下,如果要执行自定义事件,有一些条件的,比如如果这个页面是新创建的话,那么自定义事件,必须是在这个页面loaded事件发生了以后才会执行的;所以为了兼容两个系统以下的代码会更好一些

var wv = plus.webview.getWebviewById("a.html");
if(!wv){
    wv = plus.webview.create("a.html","a.html");
    wv.addEventListener("loaded",function(){
        wv.show("none",1,function(){
            mui.fire(wv,"getId",{
                ....
            });
        })
    })
}else{
    wv.show("none",1,function(){
        mui.fire(wv,"getId",{
            ....
        });
    })
}

四,关于请求数据的问题
个人的总结,我觉得在前端请求数据的时候,我们应该把每一个状态都做好相应的提示;一般请求数据分为三个状态
1)请求之前(为了防止用户多次请求,这个时候应该是让提交数据的按钮禁用掉,不管用什么办法);
2)请求成功了(把刚刚禁止掉的按钮恢复正常,做相应的数据展示)
3)请求失败了(把刚刚禁止掉的按钮恢复正常,做相应的提示)

五,关于前端的发送数据给后台和请求到数据以后如何展示的问题
利用vue的双向数据绑定和模板渲染会省事很多,虽然双向数据绑定还没有用到过,但是应该是比自己写要靠谱很多,因为利用双向数据绑定根本无需做什么,发送数据的时候,也是服务器返回来的原格式,这样会很方便

六,上拉刷新和下拉刷新的问题
iOS平台的下拉刷新,使用的是 mui 封装的区域滚动组件, 为保证两个平台的 DOM 结构一致,内容页面需统一按照如下 DOM 结构构建:

<!--下拉刷新容器-->
<div id="refreshContainer" class="mui-content mui-scroll-wrapper">
  <div class="mui-scroll">
    <!--数据列表-->
    <ul class="mui-table-view mui-table-view-chevron">

    </ul>
  </div>
</div>

这里注意,虽然利用了滚动组件,但是这里不需要再初始化滚动组件了,不然会有问题的

七,关于滚动组件
如果是利用vue去渲染的内容,在渲染完成以后一定要记得初始化滚动组件,不然就会失效

暂时先写到这里,其他问题回头再补上。。。。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值