吐槽:小程序开发过程中我们经历了那些坑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
juneszh
V2EX    微信

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

  •  1
     
  •   juneszh 2017-01-05 12:28:45 +08:00 8595 次点击
    这是一个创建于 3203 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    名称注册

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

    体系差异

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

    API 各种 bug

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

    版本差异

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

    审核机制

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

    总体感觉

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

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

    第 1 条附言    2017-01-05 13:33:35 +08:00

    居然忘记打广告

    我们的小程序叫“嗨图”(就注册到这个),有兴趣体验的朋友可以提交你的微信号。

    下面就是我们的项目官网:http://www.hipiko.com

    因为先定了中文名,而hipic hiphoto这种域名早就被注册了,所以我们索性取了个印度口音的版本pic=>piko,顺带连盐广告方案我们都想好了:

    我们就不上升到“民族歧视”,只是《The Big Bang Theory》看多了,有感而发。

    说到官网,最初的设计灵感来源是来自老外Robby Rleonardi那个马里奥式的个人简历: 传送门 http://www.rleonardi.com/interactive-resume/

    我们也希望做一个纵轴的,通过游戏方式展示我们产品,思路大概是:随意抛一个Idea进我们的程序,就能生成各种有趣的图

    然后做着做着,这不就是我们小时候红白机(小霸王)玩的三只小猪游戏一样吗?然后就把角色和BGM换成了狼与三只小猪

    《Pooyan》Since 1982

    然而官网目前暂时只做了桌面版,有空的时候会完善手机浏览适配。(玛德年前还天天加班)

    29 条回复    2017-11-14 20:30:44 +08:00
    tonghuashuai
        1
    tonghuashuai  
       2017-01-05 12:39:57 +08:00
    总感觉吹捧的都是没有真正去上手开发的人,小程序开发过程中说的最多的就是 f**k ,这什么东西,这么难用的 IDE ,这么难用的调试工具(报错信息只告诉你错误,不告诉你在哪里报的错,呵呵,你猜),平台表现不一样,模拟器没有问题,到了真机就报错,还不告诉你在哪错了……
    misaka19000
        2
    misaka19000  
       2017-01-05 13:29:46 +08:00 via Android
    @tonghuashuai 从来没用过一个像小程序 IDE 这么难用的程序
    wjh3936
        3
    wjh3936  
       2017-01-05 13:34:11 +08:00
    只要凭经验就能知道 api 更新的差异肯定比 android 原生还大……
    em70
        4
    em70  
       2017-01-05 13:34:38 +08:00 via Android
    不客观,光说坑,不说小程序带来的好处
    ETiV
        5
    ETiV  
       2017-01-05 13:47:17 +08:00 via iPhone
    专心吐槽,居然忘了打广告
    laoertongzhi
        6
    laoertongzhi  
       2017-01-05 13:59:47 +08:00
    微信号: iambigbiggirl ,求体验,谢谢!
    slwl
        7
    slwl  
       2017-01-05 14:03:37 +08:00
    WX : slwl93 ,求体验
    learnshare
        8
    learnshare  
       2017-01-05 14:41:08 +08:00
    @tonghuashuai 微信的开发平台,只是看起来很有钱途,但开发大坑。
    polun
        9
    polun  
       2017-01-05 15:28:13 +08:00
    zhangpolun1989
    i4oolish
        10
    i4oolish  
       2017-01-05 15:38:35 +08:00
    fudan_dance
    zyhw
        11
    zyhw  
       2017-01-05 15:48:23 +08:00
    zhongyouhuiwu
    qhxin
        12
    qhxin  
       2017-01-05 16:46:07 +08:00
    luosuvvv
    chanssl
        13
    chanssl  
       2017-01-05 16:50:34 +08:00 via Android
    Base64/Y2hhbnNzbA==
    ykwlv
        14
    ykwlv  
       2017-01-05 18:03:13 +08:00
    @tonghuashuai +1 感觉不出来微信小程序和 H5 有什么区别, Audio 标签上还比 H5 弱了很多的功能, Video 倒是多了一个弹幕的功能。缓存文件的 API 在 IDE 上用过一次,但是读取不出来,觉得这个应该是对比 H5 最大的优势了。
    tangqi92
        15
    tangqi92  
       2017-01-05 18:10:11 +08:00
    WeChat ID: wx819113761 求体验~
    SpringHack
        16
    SpringHack  
       2017-01-05 20:31:01 +08:00 via Android
    ID: springhack 求体验~
    maweihao999
        17
    maweihao999  
       2017-01-05 22:03:12 +08:00
    微信号: maweihao999 求体验
    mingyun
        18
    mingyun  
       2017-01-05 22:55:21 +08:00
    这广告套路可以
    chemzqm
        19
    chemzqm  
       2017-01-05 22:57:30 +08:00   1
    人家本来就说了在内测嘛,各种 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
        20
    SourceMan  
       2017-01-05 23:04:19 +08:00 via iPhone
    说什么微信克制,压根就是赶不及出功能, bug 一大堆也没处理完
    ykwlv
        21
    ykwlv  
       2017-01-06 10:54:06 +08:00
    @chemzqm 之前没有听过 indexDB,查了一下, indexDB 好像和 LocalStorage 类似吧,都是结构化的数据,我说的下载是指图片,或者音频这类的文件。小程序确实是 API 简单,能够把 iPhone 和 Android 的兼容性做好的,对开发者还是很友好的。
    我在 IDE 上试了它的 API ,本地缓存一个图片,但是死活读不出来,清空文件缓存,但是还是通过接口可以看到有那个文件
    juneszh
        22
    juneszh  
    OP
       2017-01-07 16:17:17 +08:00
    要跟前面申请体验的朋友说声对不起,这几天给小程序的审核搞到一直加班改代码

    小程序的审核真心累,真心是各种奇葩,在还不了解功能就说我们功能不完整,俨然都成了产品和测试的角色了

    就像今天这个打回理由:



    我们的功能是用户创建完图片,可以共享到创意墙版块,给其他用户看到,但是上传完需要工作人员审核的,而且过程很明确的在图片上会显示“审核中”,不然用户上传个裸照我们不就给平平安安约谈了?

    这家伙居然说共享完不能在最新看到就说我们功能不完整!?

    这怎么搞?又没有申诉机制,连续两次因为这个理由打回了
    pubby
        23
    pubby  
       2017-01-07 16:29:54 +08:00
    @juneszh 是的,整天喊自己小程序,但是审核的时候又要求你不能太小
    zhouquanbest
        24
    zhouquanbest  
       2017-01-07 17:38:08 +08:00
    @juneszh 我这几天也被微信的审核烦死了
    理由奇葩就算了 他是大爷 咱们改
    但是有些奇葩的问题实在是没法复现

    比如昨天打回来的理由是在 ip6 iOS10.02 上加载失败
    然而提交前我们测过所有的设备 包括审核人员说的 ip6 10.02 ,打回后我又特意把当时提交的版本用这机器测了一边,完全正常。。。。。

    真的怀疑是不是微信这几天审核量太大了 审核人员已经出现幻觉了
    juneszh
        25
    juneszh  
    OP
       2017-01-07 17:44:30 +08:00
    @zhouquanbest 是的,我们现在都懵逼了,都不知道怎么改才符合他们要求
    juneszh
        26
    juneszh  
    OP
       2017-01-08 13:21:37 +08:00
    刚刚终于审批通过了。。。
    njl123
        27
    njl123  
       2017-05-12 16:35:52 +08:00
    小程序的 canvas 在 ios 有没有默认的背景色,我的 demo 绘制出来怎么会有白色的背景,应该怎么弄,求支援
    Feva
        28
    Feva  
       2017-11-14 20:29:56 +08:00
    大坑、大坑、大坑!!!
    尼玛,审核的是小学生,这个搞笑不(小程序跟程序 [谐音] )

    小程序"快捷程序开发"代码发布审核结果
    14:48:43
    你的小程序"快捷程序开发"代码发布审核未通过,原因如下:
    1:账号信息不符合规范:
    (1):包含侵犯他人权利的信息
    (2):名称含关键词字眼:小程序 [谐音] ,涉及侵权,请修改、删除该关键词后再提交审核
    如有疑问,请查看详情与反馈。
    Feva
        29
    Feva  
       2017-11-14 20:30:44 +08:00
    @Feva 日尼玛,第一次是怎么通过审核的,龌龊的腾讯,给我下套
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5998 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 06:20 PVG 14:20 LAX 23:20 JFK 02:20
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86