选择了uniapp开发app

7月份打算做一简单app,之前公司做app的时候简单用过Dcloud公司的mui,当时由于uniapp刚出来,最终选择了mui。

对uniapp的了解几乎没有。做app对我来说几乎是零基础的,当然是能把任务完成越简单越好。

当时有了解谷歌的Flutter,是使用Dart语言开发的,由于我和另外同事都感觉入门门槛比较高,加上app开发时间比较着紧,所以放弃了。现Flutter更新的频率比较高,加上阿里大厂的扶持,后再做app会比较倾向。

本打算使用mui,当时是由于mui的性能问题一直也在犹豫,直到再次看到uniappp,被官方的“只开发一套代码,可发布到IOS,Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。”。当时着实是被吸引了,这才导致了入坑的开始。

简单说一下在开发过程遇到的问题:

1、app的onLaunch生命周期中无法页面跳转,导致登录拦截无法写到app的onLaunch生命周期中,只能是写到pages.json中第一个页面的onLoad生命周期中,虽间接也能实现,但总是不符合常理的。

官方提供了如果app onLaunch生命周期如果有页面跳转的话,使用定时器延迟加载,但即使登录拦截页面跳转了还是会执行pages.json中第一个页面的onLoad生命周期中函数,官方又有说不支持在onLaunch生命周期做页面跳转。(其实加延迟可以实现)。

截至到现在还是没闹明白到底行还是不行?

2、github上提的issue都石沉大海了。。。

3、所谓的开发一套代码可发布到多个平台,不是你想的那么简单的。

// #ifdef APP-PLUS

中间写安卓原生的代码

//#endif

自行体会。。。

4、生态

官方提供了一些组件,但是你肯定找不到合适的组件,那就自己写吧,先实现功能再美化样式,可苦了我。

如果能有像vant的开源组件那肯定是极好的。

5、开发工具

之前用过HBuilder,换了HBuilderX后真机调试动不动就崩溃退出,这体验是糟糕透了,关键是浪费时间。

说了你这么多不好,但gitHub上你的star越来越高(10000多了),也希望你越来越好吧。

6、打包问题

如果你使用的云打包,可能会面临这个问题,由于uniapp版本升级的比较快,云打包只允许跨越2个版本,试想下,当你的app平稳运行一段时间后,有新的需求后,这时uniapp肯定更新了不止2个版本,这时你就无法云打包。当然你可以配置本地离线打包,但鉴于选择这个框架的基本都不是全职做移动端开发的,离线环境的配置可想而知也不是那么简单的。

7、nvue页面编译模式你也需要注意下,因为在版本升级过程中之前的编译模式可能会没了。然后你会发现选择新的编译模式后项目好多地方都报错了,当时心理慌的一批(版本2.*时更新后需要过这个问题,当时想死的心都有了)。

tips:

开发的app安卓市场上线了。ios甲方还没要求,但我总在想如果代码编译成IOS会怎么样?编译成微信小程序会怎么样?编译成今日头条小程序会怎么样?编译成支付宝小程序会怎么样?编译成h5我不担心。

如果编译到微信小程序问题太多的话,我肯定会重新开发微信小程序,因为我最近在做微信小程序,正好可以拿来练手。

2019-11-05更新:

app 图表需求有更新,之前用的echarts,后官方建议升级为自定义模式(Hbuildx2.2.2升级到2.3.7),官方给出了一些升级建议和需要修改的地方。按照官方的方案,echarts图表不报错也不显示,后私信论坛管理员,论坛管理员回复推荐使用ucharts,能理解你的目的,但做法实在是差评。再看升级文档没有了echarts替换方案,改成了推荐使用ucharts。

吐槽:一个开源的软件,升级不考虑兼容性,迟早会被弃用。

2019-11-15更新:

解决app自动登录未正确返回而加载主页数据的问题。

pages.json的第一个页面放login,在login页面的onLoad中执行自动登录。(如果有token执行自动登录,没有则用户名密码登录)这样就解决了main页面执行自动登陆没返回前执行main页面自有请求的问题。

瑕疵:因为自动登录是由login跳转到main的,如果网络慢的话肉眼看到页面跳转。

附加登录拦截逻辑:

系统首页为login,login onLoad生命周期内 根据是否有token判断是否需要自动登录(用户名密码登录成功换取的token会存到手机存储,同样退出登录的时候会清除(刷新token请求失败的时候和其他业务错误都会清除(比如设备在其他设备登录过等)))。自动登录成功后跳转到mian,自动登录失败跳转到login(会清除token),然后使用用户名密码登录。

2019-11-21更新:

有些人不喜欢看到app从login自动登录的过程,那还得从main页面着手改造。

不在main页面写登录逻辑是为了解耦,如果想要实现不看到自动登录的过程,还的从main页面着手。

在main的onLoad中执行自动登录,main页面的数据请求做到自动登录成功的回调。

有个不好的地方,就是在自动登陆没成功返回前不能发起其他的网络请求,如果有都得作为自动登录成功的回调。

2020-05-08日更新:

需要优化的地方:

1、token加密后存储到手机存储,防止泄露后拿到token直接请求后台。

2020-06-27更新:

1、再次被雷倒。项目最近要更改一处显示,更新为最新的基座后,样式全部错乱。心中猛的一惊,这要玩死我的节奏吗?

静下心来看了看基座更新的日志,看到upx改rpx的信息,改了一处竟然成功。官方建议使用rpx但同时会兼容老的upx。但在我的app里是真的不兼容。最终更新了最新的基座的全部自带的通用样式css,修改了自定义的样式中的upx为rpx。最终问题解决。

为了改一处显示真的是大费周折。。。

2、试了下离线打包,按照官方提供的文档,但发现官方提供的历史版本的sdk竟不是所有的。就比如我用的2.6.5版本就没有相应的离线sdk。只能硬着头皮升级基座,结果出现了1问题。

本文完。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
你好!如果你想使用uniapp开发app,我可以为你提供一些相关信息。Uniapp是一个基于Vue.js的开发框架,它可以将代码编译为多个平台(包括iOS、Android、H5等)。通过使用uniapp,你只需要编写一次代码,就可以在不同平台上运行。 为了开始使用uniapp开发app,你需要安装uni-app开发环境。首先,确保你已经安装了Node.js和Vue CLI(如果你之前没有安装过)。然后,你可以通过以下命令安装uni-app: ``` npm install -g @vue/cli vue create -p dcloudio/uni-preset-vue my-project cd my-project npm run dev ``` 上述命令中,我们首先全局安装Vue CLI,然后使用uni-preset-vue创建一个新的uni-app项目,并进入项目目录。最后,通过运行npm run dev命令,你就可以在本地启动一个开发服务器,并在浏览器中预览你的app。 在开始开发之前,你需要熟悉Vue.js的基本知识。如果你已经熟悉Vue.js,那么使用uniapp开发app会更加容易上手。 在uniapp中,你可以使用Vue的语法编写页面和组件。此外,uniapp还提供了一些平台特定的API和组件,以实现更深入的原生功能。 一旦你完成了app开发,你可以使用uniapp提供的命令来构建app。具体的构建命令将根据你要构建的平台而有所不同。例如,如果你要构建iOS应用,你可以运行以下命令: ``` npm run build:ios ``` 这是一个简单的介绍,希望能帮助到你开始使用uniapp开发app。如果你有进一步的问题,请随时提问!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

myskybeyond

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

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

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

打赏作者

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

抵扣说明:

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

余额充值