干货:小程序开发过程中遇到的问题,这里有答案

1. 关于小程序注册及提交

小程序的开发,需要申请账号,完善信息,提交代码,审核发布等流程。它们是可以和小程序代码的编写同步进行,所以小程序更加偏向是一个开发者工具,而不是像订阅号或者服务号那样的运营工具。

先说账号申请,阅读过官方文档的应该清楚,小程序目前,只支持两种类型的账号。第一种是企业,这个只需要注册账号,然后绑定对公账号即可。还有一种是一些类似政府企业,无法使用对公账户打款。也就是说第一种企业只要注册就可以使用,而第二种注册完需要认证才行,并且目前不支持个人账号。

第二步就是完善信息,这里很简单,唯一需要特别注意的是,基本信息中,选择小程序的服务范围的时候,一定要特别谨慎,不能随意修改。因为这样容易造成数据混乱,比如你选的分类是打车,而用户搜完之后,发现你其实是做的美食,这就尴尬了。

做好之后就可以去代码开发并且上传,上传代码只能是管理员账号才行。这里需要注意的第一点,是小程序不支持代码的合并和修改,所以,当你准备上传代码的时候,一定要确定,这是个完整的包,如果需要合并和修改,需要在其他类似git这样的平台进行。第二点是当你提交审核的时候,尽量不要在小程序页面里面出现例如test之类的文字,以及测试数据,尽可能做到完善,否则有可能会影响你的信用分。

2. 关于小程序技术开发

2.1 关于小程序的数据结构和视图渲染

小程序和其他前端非常不一样的一个地方,就是渲染方式、执行方式以及执行时间,都是由小程序自己自定的,并且可以在后台进行编译。

以下图为例,appservice管理的是数据,视图层管理的是渲染,数据和视图层是完全分离的。这种视图结构中,你的脚本是没办法直接操控视图的,所以使用习惯了jQuery的人,这里就比较遗憾了,是完全不能用。第一是因为它是跑在两个独立线程中,另一个是因为开发者写的脚本文件,都是跑在jscode当中的,所以有很多dom是没有的。

2.2 关于小程序的开发者组件

为了方便开发者,微信官方推出了一系列的小程序组件,这些组件会有一些自己的功能,比如说一些button和cheakbox等等,会有自己微信的样子,所以说,即使是一些ui资源很弱的团队,也可以开发出来很不错的小程序。

由于html对于组件的支持比较差,所以这些组件基本上都是微信自己自定义的。在技术上,微信吸取了web-component的精髓,研发了wx-component,研发的时候,假如你熟悉前者,你就会发现,他们的接口是很相似的。

其实了解技术的人都清楚,这么做一套自定义组件,是非常耗时耗力的,微信之所以会做,一个是因为方便web和native之间的切换,另一个是可以和自己的自定义框架很好的结合起来。

2.3 关于小程序的unionID

如果开发者拥有多个移动应用,网络应用,和公众账号(包括小程序),可通过unionid来区分用户的唯一性。因为只要是同一个微信开放平台账号下的移动应用,网站应用和公众账号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

所以就可以用这个unionid把公众号的一些用户,以及之前你开发过的微信生态下的应用,和小程序里面的用户建立起联系,你会发现,他们都是同一批人。

2.4.关于小程序的cooike不生效问题

很多开发者会问,为什么某些set-cookie之类的不会生效,这里其实是因为,小程序开发并不是在一个浏览器的环境中把请求发了出去,所以服务器发回来的返回头,小程序是无法理解的。小程序的请求是jscode通过native发出去的,所以他们并不理解,但是以后可能会优化理解。

处于安全需要,需要服务器支持Https。然后TLS(Transport Layer Security)版本需要支持到1.2,即最新版本,它可以在不支持TLS的环境中模拟。但是如果真机运转的话,还是需要把服务器版本升级到最新。

在app.json中声明的页面,需要有相应的Page()函数进行注册。开发者经常遇到,在app.json写了a页面,但是没有创建a.js文件,那就会出错,并且如果你创建了a.js,没有在里面生成page()的函数,那也会出错。

「H5程序俱乐部」是一个专注微信小程序学习交流,相关外包/招聘需求信息发布的微信公众号。
图片描述

「H5程序俱乐部」微信号:wxappclub 或者 微信扫一扫关注
图片描述

相关文章