版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微信小程序开发规范文档前言为规范微信小程序(以下简称“小程序”)开发流程,保障小程序功能稳定、体验一致、安全合规,契合微信生态“以用户价值为依归、用完即走、触手可及”的核心理念,同时提升开发效率、降低维护成本,规避审核驳回、功能异常等风险,特制定本规范。本规范适用于所有参与小程序开发、测试、部署及运维的相关人员,涵盖开发全流程的技术标准、设计要求、安全规范及审核准则,需严格遵照执行。本规范依据微信官方开放文档、设计指南及2026年最新审核规则制定,将随微信平台规则迭代同步更新,开发者需定期关注官方公告及文档更新日志,确保开发工作与最新要求保持一致。一、基础开发规范1.1开发环境规范必须使用微信官方提供的微信开发者工具进行开发、调试及预览,禁止使用非官方工具,避免出现兼容性、功能异常等问题,开发者工具官方下载地址:/miniprogram/dev/devtools/download.html。开发环境需与正式环境严格区分,测试、预发布环境需配置独立的域名、接口及数据,严禁测试数据流入正式环境,避免影响用户体验及数据安全。开发者工具版本需保持最新,及时适配微信客户端的版本更新,确保开发的功能在不同版本微信中均能正常运行;同时需定期测试真机预览与开发者工具的差异,避免出现环境适配问题。1.2项目结构规范小程序项目结构需遵循微信官方标准,清晰合理、命名规范,便于团队协作及后期维护,核心文件及目录要求如下:根目录仅保留必要文件:app.js(小程序入口,必须调用App()函数初始化全局数据)、app.json(全局配置文件)、app.wxss(全局样式文件)、pages(页面目录)、utils(工具函数目录)、static(静态资源目录),禁止冗余文件及目录。页面目录命名统一采用小写字母+下划线(如user_center),每个页面需包含4个核心文件(.js、.json、.wxml、.wxss),文件名与页面目录名保持一致,禁止随意命名或遗漏文件。静态资源(图片、图标、字体等)需放入static目录,按类型分类存放(如static/images、static/fonts);图片建议使用WebP格式(兼顾清晰度与体积),禁止使用过大体积图片(单张图片不超过200KB),背景图需使用base64格式或网络图片,避免本地路径引用异常。工具函数需封装在utils目录,按功能分类(如请求工具、格式化工具),禁止在页面中重复编写相同函数,提升代码复用性;工具函数需添加详细注释,说明功能、参数及返回值。1.3编码规范1.3.1通用编码要求编码格式统一采用UTF-8,缩进使用4个空格(禁止使用Tab缩进),代码行尾无多余空格,文件末尾保留一个空行,提升代码可读性。变量、函数、组件命名遵循“小驼峰命名法”(如userName、getUserInfo),禁止使用中文、拼音、特殊字符及关键字(如var、function),命名需语义化,见名知意,避免模糊命名(如a、temp)。代码注释需清晰、简洁,核心逻辑、复杂算法、参数说明必须添加注释;注释格式统一,单行注释使用“//”,多行注释使用“/**/”,禁止注释冗余或无效注释。禁止编写冗余代码、死代码(未使用的变量、函数、组件),定期清理无用代码;避免代码嵌套过深(嵌套不超过3层),提升代码可维护性。1.3.2WXML编码规范遵循微信小程序WXML语法规范,所有标签必须闭合(如<view></view>),禁止使用HTML标签(如div、span),否则会导致编译报错。标签属性统一使用双引号(""),属性值需简洁,禁止冗余;标签嵌套需合理,遵循“父子级”逻辑,禁止跨层级嵌套。数据绑定需规范,WXML中{{data}}的变量必须在Page的data中预先定义,禁止使用未定义的变量;事件绑定需统一前缀(如bindtap、catchtap),避免混淆。避免在WXML中编写复杂逻辑(如条件判断、循环嵌套过多),复杂逻辑需在JS中处理后,通过数据绑定渲染到页面,提升页面渲染效率。1.3.3WXSS编码规范遵循微信小程序WXSS语法规范,支持rpx响应式单位(适配不同屏幕尺寸),禁止使用px固定单位,避免适配问题;字体大小、间距等需统一,保持页面风格一致。样式选择器优先使用类选择器(.class),禁止使用ID选择器(#id)、标签选择器(如view),避免样式污染;样式命名遵循“页面名-组件名”格式(如user-center-avatar),语义化清晰。全局样式(app.wxss)仅存放公共样式(如字体、颜色、边距规范),页面样式(页面.wxss)存放当前页面专属样式,禁止在页面样式中覆盖全局样式(特殊情况需标注说明)。样式隔离需合理配置,页面样式默认隔离,若需共享样式可设置options:{styleIsolation:'shared'};禁止使用!important强制覆盖样式,避免样式冲突难以排查。1.3.4JS编码规范遵循ES6及以上语法标准,禁止使用过时语法(如var声明变量,优先使用let、const);const用于声明常量(不可修改),let用于声明变量(可修改),禁止重复声明变量。页面JS(Page)需遵循官方生命周期规范,合理使用onLoad、onShow、onReady、onUnload等生命周期函数,禁止在生命周期函数中编写冗余逻辑;生命周期函数需按顺序排列,提升可读性。数据处理需规范,修改页面数据必须使用this.setData({key:value}),禁止直接修改this.data(如this.data.userName='xxx'),否则无法触发页面重新渲染。事件传参需通过data-xxx自定义属性传递,禁止在事件绑定中直接传递参数(如bindtap="getInfo(123)"),正确方式为<viewbindtap="getInfo"data-id="123"></view>,通过e.currentTarget.dataset.id获取参数。网络请求需封装统一的请求工具(如utils/request.js),统一处理请求头、请求参数、错误提示、loading状态,禁止在页面中直接使用wx.request;wx.request最大超时时间为60秒,超出需使用云函数处理。二、功能开发规范2.1页面功能规范每个页面需有明确的核心功能,页面内容简洁,避免冗余信息;用户进入页面后,0.5秒内可识别当前核心任务,所有设计元素均服务于核心功能,禁止添加无关干扰元素。页面导航需清晰明确,次级页面左上角必须提供返回上一级页面的操作,配合微信原生返回功能(iOS边缘右滑、Android物理返回键),确保用户“来去自如”,禁止出现“迷路”场景。底部TabBar需严格遵循规范:标签数量控制在2-5个(建议不超过4个),仅首页可使用微信原生底部Tab样式,标签需包含图标+文字双标识,选中态与未选中态区分清晰,颜色符合WCAG2.1AA级对比度标准[5]。页面加载需及时反馈,避免用户长时间等待:局部加载使用局部反馈(如按钮加载动画),全局加载使用全局提示,加载时间过长(超过3秒)需显示进度条及取消按钮,并告知用户加载进度。表单页面需规范:表单项布局合理,标签清晰,必填项标注“*”;输入框需设置输入限制(如手机号11位、密码6-16位),实时校验输入内容,报错时明确指出错误字段及修改建议,避免模糊提示(如仅提示“输入错误”)[5]。2.2组件使用规范优先使用微信官方组件(如view、text、button、form等),官方组件无法满足需求时,可使用自定义组件;自定义组件需封装合理,复用性强,禁止重复开发相同功能的组件。自定义组件命名统一采用“c-组件名”格式(如c-avatar、c-dialog),组件目录放入components目录,按功能分类;组件需添加详细注释,说明功能、属性、事件及使用场景。组件通信需规范:父组件向子组件传递数据通过props,子组件向父组件传递事件通过triggerEvent,禁止直接修改父组件数据;组件样式需隔离,避免影响页面样式。组件使用需符合微信官方要求,如导航栏颜色需遵循WCAG对比度标准,否则会导致审核不通过;按钮、表单等基础控件需遵循官方控件说明,确保交互一致性[2]。2.3API使用规范使用微信小程序官方API时,需核对API版本兼容性,避免使用已废弃的API(如wx.getUserInfo已废弃,需使用wx.getUserProfile);API调用需遵循官方文档要求,传入正确的参数,处理异常情况(如调用失败提示用户)。权限相关API(如获取用户信息、地理位置、相册、摄像头等)需谨慎使用,调用前必须弹窗告知用户用途及收益,获得用户明确授权后才可调用,禁止强制授权或静默授权;同时需在app.json中声明对应权限字段,提供便捷的权限关闭路径[3]。支付、分享、登录等核心API,需严格遵循微信官方流程,禁止篡改API调用逻辑;支付功能需接入微信支付官方接口,确保支付安全,禁止跳转第三方支付渠道。云开发相关API使用需遵循官方规范,合理使用云数据库、云存储、云函数:云数据库仅存储必要数据,禁止存储敏感信息;云函数需优化性能,避免冗余逻辑,云存储上传文件需进行格式校验及大小限制。2.4性能优化规范小程序包体积控制:主包体积不超过2MB,次级包通过subpackages配置拆分,总包体积不超过16MB(主包+所有分包),避免包体积过大导致加载缓慢;可通过分包加载、删除冗余资源、压缩图片等方式优化包体积。页面渲染优化:减少页面节点数量(单页面节点不超过1000个),避免频繁渲染;列表渲染需使用wx:key,避免重复渲染;静态页面可开启prerender预渲染,提升加载速度。网络请求优化:减少不必要的网络请求,合并同类请求;使用缓存策略(wx.setStorageSync、wx.getStorageSync)存储非敏感数据(如用户信息、配置信息),避免重复请求;请求接口需设置超时时间,处理请求失败、网络异常等情况。启动性能优化:减少启动时的同步操作,核心逻辑优先执行;避免启动时加载过多资源,非核心资源可延迟加载;优化冷启动耗时,避免因启动过慢被审核否决。三、安全规范3.1数据安全规范用户敏感数据(如手机号、身份证号、密码、支付信息等)需加密存储及传输,传输时使用HTTPS协议,禁止明文传输;禁止存储用户敏感数据到本地缓存(wx.setStorage),避免数据泄露。遵循数据最小化原则,仅采集功能实现所必需的用户信息,禁止超范围收集;隐私政策文本需与实际数据处理方式一致,明确告知用户数据收集范围、用途及存储期限,获得用户同意后才可采集数据。接口请求需进行签名校验,防止接口被篡改、滥用;禁止在客户端存储接口密钥、token等敏感信息,需通过后端接口获取并定期更新。对嵌入小程序的所有第三方SDK承担数据安全主体责任,需审核SDK的合规性,必要时提交SDK合规性说明或认证材料,禁止使用不合规SDK导致数据泄露。3.2代码安全规范禁止编写恶意代码(如窃取用户信息、恶意跳转、弹窗骚扰等),禁止调用非微信官方授权的接口、插件,避免小程序被封禁。代码需进行安全检测,避免存在漏洞(如XSS攻击、SQL注入等);用户输入内容需进行过滤,禁止直接渲染用户输入的HTML内容,防止XSS攻击。禁止混淆、加密代码用于恶意用途;禁止破解、篡改微信小程序官方代码及配置,禁止模仿微信官方功能或界面,避免品牌混同。定期对代码进行安全审计,排查潜在安全风险,及时修复漏洞;遵循官方代码规范,避免因代码逻辑缺陷导致安全问题。3.3内容安全规范小程序内容需符合国家法律法规及微信平台规范,禁止包含色情、暴力、赌博、低俗、政治敏感等违法违规内容,禁止传播不良信息。支持动态发布、用户投稿(UGC)的小程序,需具备实时内容过滤能力及人工审核流程,杜绝违规内容发布;后续需配合平台抽查,及时清理违规内容。功能说明、服务承诺等内容需具体、客观、可验证,禁止使用夸大其词、概念混淆或无法佐证的宣传话术,禁止使用“国家级”“最高级”等广告法明令禁止的用语[4]。禁止发布虚假信息、虚假活动,禁止误导用户(如虚假优惠、虚假宣传);不得纯粹或主要用于将女性或男性外貌、身份等进行商品化展示,如纯粹的美女图册、视频集等。四、审核规范4.1审核基础要求小程序提交审核前,需完成所有功能开发、测试,确保功能正常、无bug,页面无错乱、无冗余内容;需测试不同机型(iOS、Android)、不同微信版本的兼容性,避免适配问题导致审核驳回。小程序名称、logo、简介需符合规范:相互之间存在关联,准确描述小程序功能,无商业化用语、热门关键词堆砌,不侵犯第三方知识产权,不与已有小程序、公众号产生混淆;禁止使用微信相关品牌标识,未经授权不得使用明星、第三方品牌相关内容。小程序实际提供的服务和内容,需与简介、类目标签一致,无隐藏类目;核心功能需在首页体现,提供清晰的功能指引(如描述、截图),服务范围不超出小程序平台类目库范围。强监管领域(医疗健康、金融理财、职业培训、新闻媒体等),需提前上传真实、有效、可追溯的行业许可、备案凭证或经营资质,未提供资质将导致审核不通过。4.2禁止审核情形功能异常:如页面无法加载、按钮点击无响应、跳转异常、数据显示错误等;性能低下:如冷启动耗时过长、页面卡顿、操作响应延迟等。违规收集、使用用户信息:如强制授权、超范围收集、未告知用户数据用途、隐私政策与实际操作不一致等。包含违法违规内容:如色情、暴力、政治敏感、虚假宣传、恶意诱导等;侵犯第三方权益:如知识产权、肖像权、名誉权等。强制诱导行为:如强制分享、强制关注、强制跳转至指定页面,或以这些行为作为核心功能使用的前提条件。同质化严重:重复注册、提交2个及以上页面、内容、功能相同或同质化严重的小程序;功能过于简单,无法为用户提供有效服务。未经授权提供微信客户端相似功能,或依赖其他小程序、应用程序才能使用核心功能;未设置侵权投诉机制,无法处理用户权益纠纷。4.3审核提交规范提交审核时,需填写清晰的审核备注,说明小程序核心功能、更新内容(如首次提交、版本更新),提供测试账号(如有需要),便于审核人员快速了解小程序功能。审核驳回后,需根据驳回提示精准修改问题,修改完成后重新提交审核,禁止重复提交未修改的版本;若对驳回结果有异议,可通过官方渠道申诉。建立标准化上线前检查流程,上线前严格对照平台最新审核文档开展全链路自查,建议设立技术、产品、法务多方参与的内部预审机制,提升审核通过率。五、运维与更新规范5.1日常运维规范小程序上线后,需定期监测功能运行状态、接口稳定性、用户反馈,及时处理bug及异
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险营销招募方案(3篇)
- 宝宝生日策划活动方案(3篇)
- 大专毕业营销方案(3篇)
- 工地触电应急预案(3篇)
- 打磨彩钢瓦施工方案(3篇)
- 教研活动的策划方案(3篇)
- 校园-营销活动策划方案(3篇)
- 水暖批发营销方案(3篇)
- 灯光改造应急预案(3篇)
- 生态胶膜施工方案(3篇)
- 上海焊工复审试题及答案
- 人工智能与未来 课件 10.3 智能驾驶的关键技术
- 帆状胎盘课件
- 雨课堂学堂在线学堂云数据通信与计算机网络云南大学单元测试考核答案
- GB/T 46843-2025资产管理文化数字资产价值评估指南
- 臂盾使用课件
- 江苏省2025江苏城乡建设职业学院招聘(第一批)笔试历年参考题库典型考点附带答案详解(3卷合一)2套试卷
- jjg688-2025《汽车排放气体测试仪检定规程》解读课件
- 2025年人才培训与发展中心建设项目可行性研究报告
- 《婴幼儿饮食与营养》全套教学课件
- 2026年河南工业和信息化职业学院单招职业技能测试题库带答案解析
评论
0/150
提交评论