吐槽:小程序开发过程中我们经历了那些坑

2017-01-05 12:28:45 +08:00
 juneszh

前不久小程序宣布公测的时候,我们领导就计划在小程序上开展一个项目,测试小程序的生态圈到底时候做哪些类型的应用,以便给后面的项目立项做参考。于是就成立了一个特别机动小组来吃螃蟹,而本人有幸参与其中负责倒水扫地抹桌子。

与领导经过几番激烈的撕逼后,我们组最后定了图片处理的方向,因为会涉及到使用 canvas (生成图片)以及一些用户交互问题(拖动图片),可以充分测试小程序的 js 性能瓶颈在哪里。

下面进入正题,我们聊聊小程序开发过程中遇到哪些坑:

名称注册

小程序的名称体系是与公众号(订阅号 /服务号)共用的,所以能用的名称基本被注册的七七八八,这里建议有兴趣做小程序的朋友或公司尽早去注册名称。不过这里面有个坑,当你查询连续名称超过 30 次(大概)左右的时候,会被微信 ban 24 小时,就是 24 小时内不能再试名称能不能用

体系差异

经历过公众号项目开发的朋友可能都遇过,一样的前端代码在安卓和苹果之间可能存在巨大差异,这得益与苹果版微信使用 safari 内核,而安卓统一使用 QQ 浏览器 X5 内核。这个坑爹设定同样延续到小程序。好不容易写了一段牛逼哄哄交互,在安卓上各种卡顿和报错,回想一下,这不是当年 FireFox 和 IE6 的前端噩梦吗!?

API 各种 bug

客观来说,将小程序比喻为一个实验品我觉得有点不妥,因为我们开发者才是真正的小白鼠!从项目开始到现在,碰到的 bug 两只手都数不完,甚至到目前离上线没几天了,还有些没有修复。然而每次官方修 BUG 也是惊心动魄,就像 12 月 21 号的 API 大更新,对我们就影响很大,项目基本上就 GG 重写了。

版本差异

说完 API 的 bug 不得不说,微信版本会严重影响到小程序的 API ,就目前来看,微信的各个版本对小程序的支持程度都非常不一致。这有个很大的问题,微信版本的更新是决定在用户手里,如果用户不是一个版本积极更新者(像我家的女性),你的小程序可能会出现各种各样问题。

审核机制

这个东西是必需吐槽的。首先是审核时间很不规律,反馈结果从两个小时到两天不等。更重要的是审核人员感觉没有做上岗前培训,各种乱套政策,我们做了个生成搞笑证书的功能,就说我们违规提供假结婚证假学历证;我们内部建立了一个图片共享页,就说我们违规诱导用户分享邀请朋友参与。还有各种各样的主观审核不过理由,功能过于简单,功能不完整。

总体感觉

从功能上看,小程序基本上是一个阉割版服务号,缺少很多日常用到的功能,或者说操作起来变得更加繁琐,例如:界面上的图片不能直接长按保存,只能通过图片预览在保存; canvas 也与 JS 原生的差别很大,也不能生成图片后直接保存,还是丫的预览;不能发朋友圈等等。从政策上看,小程序比公众号限制更加严格,每一个页面每一个功能都需要审核,而且可发挥的范围更加狭窄。总体而言,对于我们来说只是一次吃螃蟹,影响不大。但如果你们的新项目希望首发在小程序,请三思,这个东西实际上并没有他们吹得那么棒。

另外,如果你们开发过程中遇到的问题可以在后面提出,只要我们经历过的会一一回答。

7946 次点击
所在节点    微信
29 条回复
tonghuashuai
2017-01-05 12:39:57 +08:00
总感觉吹捧的都是没有真正去上手开发的人,小程序开发过程中说的最多的就是 f**k ,这什么东西,这么难用的 IDE ,这么难用的调试工具(报错信息只告诉你错误,不告诉你在哪里报的错,呵呵,你猜),平台表现不一样,模拟器没有问题,到了真机就报错,还不告诉你在哪错了……
misaka19000
2017-01-05 13:29:46 +08:00
@tonghuashuai 从来没用过一个像小程序 IDE 这么难用的程序
wjh3936
2017-01-05 13:34:11 +08:00
只要凭经验就能知道 api 更新的差异肯定比 android 原生还大……
em70
2017-01-05 13:34:38 +08:00
不客观,光说坑,不说小程序带来的好处
ETiV
2017-01-05 13:47:17 +08:00
专心吐槽,居然忘了打广告
laoertongzhi
2017-01-05 13:59:47 +08:00
微信号: iambigbiggirl ,求体验,谢谢!
slwl
2017-01-05 14:03:37 +08:00
WX : slwl93 ,求体验
learnshare
2017-01-05 14:41:08 +08:00
@tonghuashuai 微信的开发平台,只是看起来很有钱途,但开发大坑。
polun
2017-01-05 15:28:13 +08:00
zhangpolun1989
i4oolish
2017-01-05 15:38:35 +08:00
fudan_dance
zyhw
2017-01-05 15:48:23 +08:00
zhongyouhuiwu
qhxin
2017-01-05 16:46:07 +08:00
luosuvvv
chanssl
2017-01-05 16:50:34 +08:00
Base64/Y2hhbnNzbA==
ykwlv
2017-01-05 18:03:13 +08:00
@tonghuashuai +1 感觉不出来微信小程序和 H5 有什么区别, Audio 标签上还比 H5 弱了很多的功能, Video 倒是多了一个弹幕的功能。缓存文件的 API 在 IDE 上用过一次,但是读取不出来,觉得这个应该是对比 H5 最大的优势了。
tangqi92
2017-01-05 18:10:11 +08:00
WeChat ID: wx819113761 求体验~
SpringHack
2017-01-05 20:31:01 +08:00
ID: springhack 求体验~
maweihao999
2017-01-05 22:03:12 +08:00
微信号: maweihao999 求体验
mingyun
2017-01-05 22:55:21 +08:00
这广告套路可以
chemzqm
2017-01-05 22:57:30 +08:00
人家本来就说了在内测嘛,各种 bug 是很正常的。

> 交互问题(拖动图片),可以充分测试小程序的 js 性能瓶颈在哪里
拖动图片只能算简单的交互,只是用小程序的 API 做起来会蛋疼一些(因为没有 dom )。 小程序做动画因为涉及服务层向 service 层再向 view 层传递&解析数据,所以性能上肯定会有所影响,至于多少就看你动画的计算量以及数据的传递量了。

> 安卓和苹果之间可能存在巨大差异
如果你做过兼容不同 webiew 以及 web 浏览器,你就会发现微信内兼容已经容易很多了,而且它们提供的工具集成了 weinre ,还是比较好用的

> 图片不能直接长按保存
默认不支持,但是你可以自己实现的

> canvas 也与 JS 原生的差别很大,也不能生成图片后直接保存
canvas api 122200 已经调整了,与原生差别小了很多, 有一个 API 可以导出 canvas 的 dataURL ,然后就可以保存为图片了,但是它们官方 IDE 有 bug ,调用只会报错。 WEPT 修复了这个问题。

> 不能发朋友圈
故意这么设计的,大概也是为了用户体验。

> 小程序基本上是一个阉割版服务号
讲道理应该算增强版吧,毕竟缓存、文件管理等功能在服务号上没有的,你说的阉割应该是说小程序在分享等功能上做了一些不同于服务号的限制。

@ykwlv html 规范有 indexDB 等方式缓存文件,功能和灵活性要比小程序强太多,小程序唯一优势就是 API 简单(或者说粗糙),菜鸟也很容易上手。
SourceMan
2017-01-05 23:04:19 +08:00
说什么微信克制,压根就是赶不及出功能, bug 一大堆也没处理完

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/332368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX