微信小程序开放公测,开发者可登陆微信公众平台
发表时间:2023-11-10 11:33:16
文章来源:炫佑科技
浏览次数:162
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
微信小程序开放公测,开发者可登陆微信公众平台
小程序概述
昨晚,微信团队宣布微信小程序开放公测。 开发可以登录微信公众平台进行申请。 开发完成后,可以提交审核。 我们无法在公测期间发布它。
前段时间我们也开发小程序,现在对之前的开发经验做一个总结。
1.什么是小程序?
微信小程序是一种介于原生应用和网页应用之间的中间应用。 通过微信加载,实现类似原生应用的流畅度。 与原生应用相比微信小程序开发appid,小程序更加轻量、实时更新、跨平台; 与网页应用相比,小程序拥有离线资源,体验更流畅。
微信小程序的设计目标是让开发以*简单、*高效的方式在微信中开发具有原生APP体验的服务。
话不多说,我们来看看小程序的效果:
看到效果后是不是很好奇开发呢~
2、小程序的实现机制
小程序的开发是开发微信提供的一套应用框架。 微信通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,为上层提供了一套完整的API,让开发可以轻松使用微信提供的各种基础功能客户。 功能快速构建应用程序。 框架设计如下:
框架提供了自己的视图层描述语言WXML和WXSS,以及基础的逻辑层框架,通过单向数据绑定的方式进行视图层和逻辑层之间的数据传输,让开发更专注于数据和逻辑。
3. 支持的功能
接下来我们看看微信框架提供的具体功能:
wxml:一切都是组件(视图组件)
更多wxml组件请查看微信公众平台小程序文档
4. 函数式API:
更详细的API请查看微信公众平台小程序文档
5、其他:
下面我们来具体开发~
小程序开发流程 1.获取微信小程序的AppID
2. 创建项目
创建项目需要通过开发工具来完成。 (工具可在微信小程序公众平台下载)
3. 编写代码
首先我们看一下小程序的目录结构:
微信对于小程序的开发有一些规定:
上图左侧的三个文件放置在小程序根目录下,其他文件由开发自由控制。
其中app.js和app.json是必需的。
小程序页面由同一路径下四个不同后缀的同名文件组成:
在H5开发中,我们在页面中引入相应的css和js微信小程序开放公测,开发者可登陆微信公众平台,而小程序开发则不需要在wxml中引入。 他们通过同名将页面与逻辑js和样式关联匹配。
接下来我们就开始具体的开发吧~
框架:小程序内嵌微信框架,无需额外框架
一般来说,当我们开始开发时,我们都是从框架开始。 小程序封装了一个为客户端设计的框架。 作为小程序的开发,就是基于这个框架开发。 现有的框架不需要考虑,也不需要考虑。
现有的框架基本上都是建立在对象之上的。 小程序没有浏览器BOM宿主环境。 你可以理解为小程序的托管环境是一个节点式的托管环境,而不是浏览器客户端。 关于这个环境的设计,感兴趣的童鞋可以参考PWS
模块化:正式支持,加载参考更像ES6
通过加载以小程序的形式支持,类似于node、seajs。 但加载的是引用的赋值,而不是值的缓存。
小程序模块编写:
小程序的模块操作(类似node,框架会自动添加外层):
模块化:UI组件设计
在开发过程中,我们在模块化视图相关组件时可能需要注意。 例如,在H5中,我们通常将弹出框架封装成模块组件,以便可以重复使用。 在小程序中,视图只能是wxml,不能动态生成。
首先我们看一下微信弹窗的视图组件模态。 之前微信提供的API是这样的(微信已经用其他方式实现了这个组件,这里用它来描述问题):
看到这里,你是不是觉得,如果一个页面需要使用100个弹出框,那么开发需要创建组件并注册对应的100个确定按钮事件和100个取消按钮事件。 这显然是不合理的。
是否可以封装成框架上的通用组件,开发只需要传入相应的事件处理函数? 微信以后可能会考虑封装一下~
不~!
为什么? 从框架组件设计来看,框架本身采用面向状态编程,组件部分类似redux的设计(实际上并不是redux实现的)
组件的View被操作后,只能通过业务处理来更新View。 该框架是一种单向数据绑定,无法自动更新。
对于自带的此类View组件,建议根据需要重新封装。 封装可以考虑以aop的方式动态注册&卸载。
1. 定义组件通用模板
2、Aop方法封装了组件的逻辑
1)组件默认配置:
2)组件的封装实现
3. 组件的使用:
1)在页面wxml中引入组件模板
2)在页面js中,您可以随时多次使用弹出框。
目前该组件已被微信封装(api:wx.()调用弹框),但不自动更新的特性依然存在。 如果开发需要自定义其他有交互的UI组件,仍然会遇到上述问题。 可以参考上面的解决思路。
具体页面开发
对于业务页面的开发来说,页面可以看成是页面组件。 在该页面组件中,完成了以下工作:
负责初始化组件状态(微信)
负责组合子视图组件形成页面效果(开发)
判断js和view的数据匹配(开发)
负责注册业务逻辑对象提供的业务逻辑方法(开发)
负责管理业务逻辑对象(开发)
1)索引.wxml
2)索引.js
页面wxml与页面js的通信如下(简化微信框架的工作)
页面开发过程中我们需要注意的事项包括:
页面js中,需要同意data数据为只读。 该框架是一种单向数据绑定。 修改data中的数据不会自动更新View; 要更新视图,需要使用()方法。 () 更新View时,与data中的数据进行Diff比较,差异就会被更新。 这样如果直接修改数据的话,很容易导致数据中的数据与View不一致。
{{{…}},模板中的数据{{{}},{{}},data中对应的数据为data:{:{"",:""}},这样方便控制子意见。
这样就完成了页面级的开发~~YES!
小程序和H5的区别
从具体的代码编写来说,小程序开发和H5有什么区别?
:
(一)限制:
出于安全原因,通过传入字符串来执行代码的功能被禁用。 具体禁止的原生函数有:new、eval。 这对于避免H5中类似xss的问题也比较有效。
这些被禁用的功能对我们开发*显着的影响就是字符串到json的转换。 以前我们都是用new和eval来处理后台cgi的返回。 (移动终端一般封装在zepto等框架中)。 小程序开发需要改变具体的实现。
在这些BOM中,对开发影响*大的应该是没有。 因为小程序等其他功能也有类似的处理方式。 在Web开发中,涉及到后台登录。
小程序中是无法使用的。 为了兼容当前大多数Web应用的登录管理,所以使用它。 当小程序发送请求时,客户端可以动态设置该请求要发送的消息。
请注意,您无法在客户端上读取或写入。
因为没有,所以H5中的CSRF问题理论上从根本上解决了。 小程序是否存在其他客户端安全问题需要技术和时间来检验~
(2) 优化
在H5中,通常通过微信授权通过url重定向获取代码; 小程序中通过wx.login获取代码,避免了之前登录重定向的问题。
小程序在H5中将 , 替换为 . 每个小程序的大小为10M,支持同步和异步。
(3) 不便之处
1)每个页面都需要在app.json中手动注册。 如果没有注册,则不会执行此页面。
2) 打开页面限制为 5 个。 开发过程中,主要需要控制打开页面的数量。
wxss:
rpx(像素):可以根据屏幕宽度进行自适应。 将屏幕宽度指定为 。 如上,屏幕宽度为375px,总共有750个物理像素,那么=375px=750个物理像素,1rpx=0.5px=1个物理像素。
4、调试
开发完成后,我们调试并检查效果,类似于移动开发,增加了手机日志。
开发工具调试:
手机客户端:点击右上角开启调试
5. 施工
小程序使用类似于node的本地加载模块。 Seajs中不需要考虑模块合并,只需要它即可。 当然,如果使用ES6开发,还是需要bebal。
6. 测试环境
具体微信详情还在调整中……
7. 发布
在开发工具中提交全额金额,通过微信审核后,*终在微信小程序平台上发布。 文件发布和加载的流程如下:
8.版本更新
小程序在启动时更新。 首先与客户端版本进行比较,看是否有新版本。 如果有新版本,则更新小程序然后运行; 否则,它直接使用本地资源运行。
至此,小程序的整体开发和发布就结束了~
个人对小程序产品的看法:
优势:
低门槛下载,作为微信的一部分,可以直接通过微信访问,即用。 它几乎可以被认为是一个网页,没有下载门槛。
跨平台,微信客户端底层包支持跨平台小程序
开发成本低。 通过之前的开发对比,小程序的开发开发比网页应用低,而且前端资源存储、发布和运维都集成在微信中(如果结合腾讯云功能,那就纯属联想了~ ~哈哈)
页面仿原生,体验更流畅
小程序可以使用微信支付功能
限制:
基于微信框架开发,部分功能受限,不支持其他现有第三方插件;
只能同时打开5小程序页面,交互过程较长时难以支持;
小程序包大小限制为1M(目前),所以只适合轻量级
微信框架API具体内容请参考
建议开发小程序时不要从Web App开发的角度去思考~
结论
我从8月份开始就参与了这个项目的内测开发。 这期间,我经历了几次翻天覆地的调整和不断痛苦的迭代。 幸运的是,框架和开发工具已经变得完善和稳定。 期待小程序正式上线~~
如果您觉得我们的内容不错,请扫描二维码为作者点赞并转发到您的朋友圈分享给您的朋友~
本文为腾讯Bugly独家报道。 如有转载,请在文首显着位置注明作者和出处“腾讯Bugly()”。