1416956117@qq.com
1416956117@qq.com
  • 发布:2019-05-07 22:00
  • 更新:15 小时前
  • 阅读:807

我理解的uni-app做app的问题

分类:uni-app

当然,uniapp也是有很多不错的地方,比如引入vue和webpack,编译成多个平台……大家看官方的说辞就知道了。
去年底刚把一个APP从apicloud转到uniapp,以前也用过mui做东西,本人上班兼做后端,前端,也会做安卓。
了解和使用uniapp半年有余,心中感觉有一股恶气,不吐出来,怕会抑郁。
个人认为uniapp不是一项新技术,绝不可能达到原生的效果,官方也不敢提“丝滑”两个字,纯粹是在以前的基础上多了个webpack打包和引入vue,自研引擎?(官方想说的是直接引入的谷歌v8和weex,还是网易美团的那个什么小程序框架吗?)
下面直入正题,细数个人使用uniapp半年中给它定的罪:

一、video组件在APP上poster封面无效,请官方不要狡辩,每次都说提供一个demo,倒是在APP上看看video封面图有没有效啊!这个问题社区已提出一年有余,从来得不到解决。

官方回复:那就勇敢的提供一个可重现demo,别瞎BB。

二、APP没有独立调试功能(官方想说用小程序开发工具调试?),现在是9102年了,这是多么落后!修改一行代码,重启一次基座,及使讲某一个页面作为启动页调试,保存也会编译整个项目(官方不要狡辩),我们想要的是基座调试热更新,看看RN,flutter,weex他们调试都是热更新,你uniapp在这点上,都比不上apicloud的WiFi调试!

官方回复:凡是要编译的,都是这样。小程序也是这样,修改后会软重启应用。但uni-app有运行当前页面为首页,开发也很方便。

三、HX作为一个编辑器,在越来越好,也知道是你们自研的,作为和uniapp融为一体的编辑器,竟然调试功能比不上小程序开发工具,控制台只能输出字符串,并且控制台的一些报错让人永远无法看懂,相信官方也看不懂,我认为是官方搞不定webpack和一些引擎层级导致的,才会输出那些没人能看懂的报错。

官方回复:1.9.7以上已经支持打印对象。

四、引入nvue,无论报什么错,只有一句:ERROR,没有其他任何详细信息(请官方不要狡辩)。相信官方调试hello uniapp的nvue新闻栏目页面的时候,着实费了好几天才调出来的吧?

官方回复:weex的问题,我们正在优化中。

五、作为APP,大家说用到视频和音频播放器算不算普通的功能?就说video组件,在APP上竟然都无法通过js控制视频的一切行为,无法js控制暂停和播放,也无法倍速……想想吧,这能是一个APP缺少的事情吗?

官方回复:https://uniapp.dcloud.io/api/media/video-context?id=createvideocontext

六、input组件官方强制控制它的最低高度,看似无影响,请官方做一个带背景颜色的input框看看就知道了?社区无数人反应无数次,官方从来不敢回复相关帖子!

官方回复:看不懂你的描述。

七、简陋的swiper组件,在安卓和长列表的iOS上卡得不能动。意味着不可能用uniapp做得了新闻资讯类APP,为什么,因为新闻app都是左右滑动栏目的,官方很自觉,为了一个swiper,引入整个weex(好了,请问引入weex报错只有一句ERROR怎么解决?),请问大家除了用weex的slider替代uniapp的swiper外,还能用到weex的地方吗(自定义导航栏算吗?)

官方回复:weex的用户也不少,你可能并不了解那个用户群体。

八、性能差劲的scroll-view组件,竟然都能放进稍微复杂的长列表,连个video都不能放进去(又想说因为video是原生的组件了吧,这解释够可以的),如能有weex的list组件的性能,就能解决千古难题——自定义导航栏,在别的平台,导航栏只是一个普通的元素,想做成什么样,直接写样式就行,简单到不行,而uniapp却要在通过一顿配置,生成简陋的原生导航栏,别无他法。

官方回复:为什么要用scroll-view呢?这个是微信做的不好的地方,我们为了兼容也保留了这个组件。长列表滚动,在webview体系内只能使用页面滚动,不能用区域滚动。当然用nvue无所谓,怎么用都可以。

九、关于HX的更新(这里要说一番),每次更新原封不动的代码,经常出现莫名其妙的问题,报的错,无人能看懂(相信大家都深有感触),升级带来的是一些页面表现形式上的bug,代码原封不动放到上一个版本hx运行,又没有问题。

官方回复:这个确实存在,做的不够好。也希望更多人参与我们的alpha版测试。情况太多,我们的自测覆盖不到所有情况。

十、探讨uniapp有没有必要为了微信小程序而卑躬屈膝的问题,个人认为,uniapp想利用小程序的生态,同时编译小程序也为了讨开发者,投资人的欢心。这一来,导致引擎层级为了迎合小程序,性能上讲,有辱“APP”这三个字母,大哥,你们是做APP的啊,大家有用过小程序的生态的东西吗?有几个人用uniapp编译过微信小程序?大家用uniapp不就是为了编译成安卓和iOS吗,连个自定义导航栏都解决不了,swiper卡得不能动,scroll-view也不能动(引入weex能解决这些,如能你们能解决报错提示和调试基座热更新我也能接受,问题你们做不到),video也不能控制,这能叫APP吗?还是说到底,uniapp也只是H5,没有本质的差别,性能本来就摆在那里,唉……

官方回复:uni-app的几十万开发者里,做微信、App、H5的人是一样的多的。大量创业者在微信小程序里发展到了更多用户。相对而言,支付宝、百度、头条小程序要少很多。

十一、uniapp无法做一个通讯类的app,因为键盘撑起输入框的问题。我承认,H5上解决这个问题,涉及很多坑,觉得dcloud的前端开发人员也不一定有这个能力解决,当然我也没那个能力。H5我能理解,你APP上倒是解决它啊!官方的示例和插件市场的示例,无一例外,键盘弹起的时候,输入框都是无法悬浮在键盘的上面的,请问做通讯类app能做吗?不可能!就因为一个输入框,好不好笑?

官方回复:hello uni-app的聊天示例,输入框好好的在键盘上面呆着。

十二、iOS上input的光标不垂直居中的问题,不要说太多,看看hello-uniapp的示例就知道了(因为官方做的hello uniapp不商用,所以他们不关心),我知道iOS上任何浏览器都这样,你们编译的H5我能理解,但是编译的APP上,input和textarea的光标不垂直居中,我就不能理解了。毕竟人家微信小程序在iOS上input可是杠杠的垂直居中。

官方回复:注意代码里的line height。

十三、APP白屏问题(比如有时启动白屏,关掉重启又没事),这个问题不用多说,看看群里和社区那么多提问,不要说别人用了什么新语法,什么内存不够,现在哪个手机不是几G的运行内存,内存不够也是你们uniapp吃掉的内存。

官方回复:白屏有很多种情况,不知道你说的哪一种,但目前没有已知的未解决白屏问题了。

十四、云打包后安装包变大的问题,大家评评理,整个项目只有几M,打包后安装包接近20M是怎么来的,是因为官方一股脑引入v8和weex导致的吧?这两个性能绝世的大家伙都引入了,为什么APP端还是解决不了swiper和scroll-view的问题?

官方回复:自定义组件模式就是引用了v8和weex,所以变大。当然在nvue下swiper和scroll-view的性能都是没问题的。如果你不希望体积变大,也不在乎自定义组件模式提升的性能,可以使用非自定义组件模式,体积会变小。

十五、关于github上的star,官方前段时间拿uniapp对比其他平台时说自己在github上的star增长是最快的,我就说说真相吧,难道不是官方在HX每次编译的时候都提示要去给个star,才消除那个提示带来的?等使用HX的这一批用户都给完star之后,我就不信,uniapp在github上还有什么star增长。

官方回复:如果一个东西不好,有提示也没有人真的去star。当然一个东西其实不好,也有可能因为其他原因有人去点star。

十六、页面间的通信问题,作为一个APP,竟然没有专门的API做这个事情,要靠各种歪门邪道达到目的,uniapp不就是经过webpack打包vue的单页面应用吗,告诉大家,去找一个叫fire.js的库解决这个问题吧,官方不会告诉你,估计他们也不知道有这个东西……

官方回复:uni-app不是单页应用。vuex是解决此类问题的推荐方案。插件市场也确实其他封装的页面通信库。

十七、总结一下,如果uniapp能解决以下问题,新入坑这还是可以使用uniapp的,否则不建议(针对app平台):

  1. uniapp如果能实现基座调试热更新(莫名其妙的报错我都能接受)。
  2. 解决swiper,scroll-view的卡成狗,让我们自由实现导航栏和tabbar。
  3. 解决键盘弹起输入框不浮起问题。
  4. 让我们充分控制video的行为等,不要说引入什么plus的video什么的,就一个uniapp,又引入plus,又引入weex,又引入v8,又引入mpvue,你们好意思吗?
  5. ………………

解决上面那些问题吧!别忘了自己的初衷,uniapp是做APP的,各家小程序只是锦上添花,导致怨声载道,看看现在,社区和群都不活跃了,整天琢磨什么自定义组件模式,什么小程序转uniapp,搞这些没用的东西,历史和性能问题一个不解决,好好想想吧!

官方回复:uni-app的社区不活跃。。。40多个qq群、微信群,每天上万条消息,喷也不是这么瞎喷的。

7 关注 分享
terryang ErrorCode 1721511741@qq.com 358066237@qq.com 扶摇侠客 lalalala 774303486@qq.com

该文章目前已经被锁定, 无法添加新评论

609840612@163.com

609840612@163.com

回复 薄荷味的雪:
在你的应用内将console.log替换为plus.bridge.execSync("Console","logLevel",["LOG",str]),在manifest.json中引入Console,类似引入地图模块似的,可以在android studio输出日志
6 天前
2958814@qq.com

2958814@qq.com

video组件在APP上poster封面显示不出来,在video外层加个<block v-if="movie.poster != undefined "></block>,完美解决。
6 天前
1335877763@qq.com

1335877763@qq.com

项目页面少的时候, 程序运行不会错卡顿, 当页面多起来了, 项目在安卓上面运行卡顿特别是切页回退 搞了几天了 代码也优化了 除了提升了一点点性能外 切页回退还是老样子 ios流畅运行 以上问题都没有
2019-05-15 16:21
2958814@qq.com

2958814@qq.com

我是刚入坑的,我想说一下第一个问题:video组件在APP上poster封面无效,这个貌似是错怪uni-app了。
我这里测试的情况是:微信小程序开发工具在本机电脑里预览时的确是封面一闪而过,可在手机真机预览时封面效果是的确存在而且不会闪过的。这个貌似是微信小程序开发工具本身的问题。
2019-05-15 15:53
411020382@qq.com

411020382@qq.com

别兼容小程序是最好的
2019-05-14 13:49
薄荷味的雪

薄荷味的雪

离线打包,在AndroidStudio运行,没有输出日志,更痛苦。
2019-05-13 10:47
广州博育科技

广州博育科技

音频组件的问题,我提了BUG,居然没一个人回复,真是够了
2019-05-13 09:54
ErrorCode

ErrorCode

入坑一周,楼主说的问题80%遇到了,项目做差不多了,最后有些功能愣是实现不了,怎么办,窝火啊!!!
2019-05-13 03:11
1341313171@qq.com

1341313171@qq.com

有同感 为了小程序牺牲太多东西了 uni-小程序
2019-05-10 18:08
1606726660@qq.com

1606726660@qq.com

回复 1606726660@qq.com:
基于app开发+1
2019-05-08 19:08
1606726660@qq.com

1606726660@qq.com

你们说的那些光标问题,反正我是没遇到过,遇到了很多坑。用各种骚姿势解决了。性能上确实有问题,我现在用的是项目编译。楼主说的第十一条问题,是完全可以解决的吧,你可以看看 https://github.com/SilurianYang/uni-app-tools 问题上基本都能解决,最主要的还是性能和video。楼主说的不能热更代码,控制台打印对象,这些都是小事。最主要的还是性能、性能、性能、特别是列表性能。app不是不想用nvue,是用了之后无法热更。我放弃了。uni-app这玩意我基本用在app上,有谁和我一样是基于app开发的自觉过来+1
2019-05-08 19:08
767909660@qq.com

767909660@qq.com

我一直被input框的光标不垂直居中所困扰,在ios上的样式真的太丑了
2019-05-08 16:20
a37free@163.com

a37free@163.com

回复 a37free@163.com:
网上查了很多都说这是小程序上的问题,app都快成型了,发现这大问题,我可能要放弃了,有点不甘心
2019-05-08 16:08
a37free@163.com

a37free@163.com

我也来吐个槽吧,video确实问题很大,封面功能居然自动把我的远程封面进行了填充,但是video却是自适应,封面扯的不成样子,今天又遇到一个新的问题,当页面下拉加载数据多的时候会出现 (node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit. 查的各种东西,不知道怎么设置,关键是我特喵的就加载了70多条数据还是每次上拉加载10条
2019-05-08 16:06
扶摇侠客

扶摇侠客

回复 辛德瑞拉:
不接受太多的概念,概念多了问题就多,学习归学习,但是赶时间真的赶时间,坑是真的坑。
2019-05-08 15:17
辛德瑞拉

辛德瑞拉

回复 扶摇侠客:
其实作为开发者,多几个概念的东西还能接受,还多学习了呢,但是在这个过程中遇到问题,有完善的文档,有提供解决的办法,这个还是很重要的。
2019-05-08 15:07
扶摇侠客

扶摇侠客

回复 1416956117@qq.com:
官方有点浮躁了,开发者最关心的是性能和稳定性,而后才是支持更多的可能
2019-05-08 14:31
扶摇侠客

扶摇侠客

回复 扶摇侠客:
https://ask.dcloud.net.cn/question/67912
我觉得不是rom策略的问题,是UNIAPP的问题,我们使用的浏览器为何不存在这个问题
2019-05-08 14:28
Rudy001

Rudy001

https://ask.dcloud.net.cn/question/56908
比如这个问题,说更新最新hbx已经修复,其实到现在都没修复,因为我前后更新升级打包了好多次问题依然
在说下面这几个吧随便查了下反馈的时间和人数也不少,但是可能真的不够优先级所以应该不会被解决
https://ask.dcloud.net.cn/question/68524
https://ask.dcloud.net.cn/question/68041
https://ask.dcloud.net.cn/question/60133
https://ask.dcloud.net.cn/question/60133
2019-05-08 14:26
DClud_incess

DClud_incess

uniapp 感觉就是微信小程序为主,其他的都是额外赠送的。我相信在这里很多人,用uniapp主要开发的还是app,小程序至少作为额外的另一端。所以我觉得官方在接下来的维护点应该放在uniapp对app段的更多处理。 来个官方的人接收一下我这段牢骚把
2019-05-08 14:26
扶摇侠客

扶摇侠客

回复 DCloud_heavensoft:
说的多了,很多开发者理解不了,开发者就是想用着趁手,不要让开发者想太多,又是用VUE,又是NVUE,又是参考WEEX的。不要抛出很多概念,给一个就够了,低层你们封装好就完了。楼主的牢骚固然有点多,但是批评的声音还是要听进去,想想开发者到底抱怨的背后是啥,真的是几个具体的问题吗
2019-05-08 14:24
DCloud_heavensoft

DCloud_heavensoft

回复 辛德瑞拉:
不是不解决,只是优先级问题。即便是难以复现的问题,如果较多人报,我们也会提升优先级主动排查。
2019-05-08 14:22
Rudy001

Rudy001

社区是真的不够活跃,大问题,小问题, 确认的bug好些还不是都没官方解决和回复
2019-05-08 14:21
DCloud_heavensoft

DCloud_heavensoft

回复 ypnow@163.com:
如果不一样还怎么uni?
2019-05-08 14:20
ypnow@163.com

ypnow@163.com

这种混合框架好像都有很多“坑”,不过我觉得最不能接受的是 uni 全盘照抄小程序的 api,同样把小程序的 api 的一大堆缺点也抄了过来,比如页面跳转,页面配置,堆栈这些东西,一毛一样。
2019-05-08 14:09
aaaa1182527245@163.com

aaaa1182527245@163.com

感觉有点以小程序为主来开发。
2019-05-08 14:06
GUNDAM

GUNDAM

回复 DCloud_heavensoft:
为何微信小程序的scroll-view在ios上挺流畅的 不会出现往头部追加数据后 下滑内容会卡顿一下 同样的代码 在小程序中很流畅的 是bug 还是啥 请解释一下 谢谢
2019-05-08 13:34
小黄鸭

小黄鸭

多说一下,题主说的有些偏激,有问题提具体问题就是了,既然选择了uniapp,就希望TA能够稳健发展,一味抱怨也无济于事。
2019-05-08 13:07
小黄鸭

小黄鸭

必须承认的是uniapp很优秀,但确实有不少问题,要听得进批评。
题主说的有几点是事实,我身同感受。(主要是BUG问题)

真心希望uniapp专心做好移动app,让天下没有难做的手机应用。
不要一味追求啥都能干,支持那么多小程序作甚,按照以往的开发经验,贪多必失。
尽可能保持每个新版本稳定无bug,不然开发出来的产品何以商用?

作为码农,我最关注的2个事:1. 稳定 2. 性能
2019-05-08 12:39
1354410963@qq.com

1354410963@qq.com

回复 1416956117@qq.com:
那就赶紧删
2019-05-08 09:24
辛德瑞拉

辛德瑞拉

回复 DCloud_heavensoft:
其实我很客观的想说几句,1,有的问题并不是说百分百复现,但是确实存在,难道就不解决了吗,大家都反应的问题,那还是有问题的,谁也不会没事干,把没有问题楞说成有问题。启动白屏的问题,我们去年的5+app也时不时能遇到,现在还能遇到,用户反馈很多次一直不了了之 2。还有5+ webivew 拦截url跳转的问题,你们说写正则,我写了,在本地测试一点问题没有正则完完全全能匹配上不管是js还是java的正则我都试了,完全没问题,传入到5+里就有问题,和群里的Dcloud_Android_琤琮 讨论很久,最后也没给我一个答复。5+app 我们17年中旬开始就一直在使用,5+确实成长飞快,也感谢5+让我们有能力去做一个简单的app。但是做产品得有一种锲而不舍的精神,有一些确实难复现的问题,可以找到几个可能点,收集一下信息,然后可以让开发者给下面的用户去测试,找到问题,解决问题。代码是死的,如果有问题,早晚会出现,
2019-05-08 09:23
1416956117@qq.com

1416956117@qq.com (作者)

官方的回复每一句都好像很有道理,其实并没有解决上面提到的任何问题
2019-05-08 09:13
1416956117@qq.com

1416956117@qq.com (作者)

厉害了,官方竟然帮我把标题改了,删了吧,算了
2019-05-08 09:11
DCloud_heavensoft

DCloud_heavensoft

键盘弹起输入框不浮起、视频封面、有时启动白屏,关掉重启又没事,这些问题请提供重现代码和重现设备。窗体通讯那里,不知道你说的那个fire.js是封装的什么,uni-app在非h5端并不是单页应用,不管它怎么封装,也是基于我们底层提供的各种api。还有什么社区和群不活跃更是无稽之谈,我们的几十个qq群每天消息记录上万条。你或许不是apicloud的水军,但至少是被apicloud洗脑的人。你的言辞语气各种不客观,我们的社区只欢迎客观讨论问题的人,不欢迎喷子。
2019-05-07 23:42
DCloud_heavensoft

DCloud_heavensoft

还没仔细看,不过很明显你对uni-app并不了解。uni-app和mpvue已经没有关系了,mpvue性能不好,我们已经重写了。uni-app也不是webpack打包后的单页应用。uni-app是一个增强的小程序引擎,小程序引擎对混合开发的优化有目共睹,和单页应用毫无关系。uni-app里,开发微信小程序、app、h5这3个平台的开发者数量基本接近,属于主流用户,开发百度支付宝头条小程序的要少很多。没有什么uni-app就是开发app用的说法。hx控制台打对象,已经在开发中。nvue的强化也在开发中。swiper和scroll-view在webview下解决不了,只能用多webview group或nvue,5+里推荐前者,uni-app里推荐后者。光标在input里居中,是line-height设置问题。
2019-05-07 22:52
15093061017@163.com

15093061017@163.com

好像很有道理的样子
2019-05-07 22:34
1416956117@qq.com

1416956117@qq.com (作者)

官方请回复一两句反驳我以上提出的问题,把皮球提回来,把锅甩给我吧!
2019-05-07 22:16