微信小程序开发步骤讲解和实用小技巧

我把自己做小程序的过程稍作总结,还有一些实用技巧分享给大家。对初学者应该有用。

文中提到的登录微信公众号后的功能,都是下图中的其中一个:

文中提到的所有例子都在智能对话小程序里都有使用,代码详细解析见帖子 个人小程序实现自然语言对话工程查询完整代码解析

1 注册 注册一个微信小程序公众号,包括账号注册和管理员信息登记,管理员信息登记很重要,因为管理员才有权限发布小程序、设置开发版的体验用户等。
请注意,公共号注册时选择小程序,不是通常认为的公众号。


注册地址:

https://mp.weixin.qq.com/
邮箱和密码请填写未注册过公众平台、开放平台、企业号、未绑定个人号的邮箱。
填写主体信息

邮箱激活之后,需要完善主体信息和管理员信息。
一般没有企业注册信息的,就选择个人注册账号类型。
注意,个人账号填写管理员信息时,需要使用绑定了银行卡且与注册主体一致的微信扫描二维码。如下图所示:


填写小程序基本信息

在小程序的公众平台的首页,会看到基本信息的填写,如下图:


填写基本信息时的服务类目很重要,即表示你的小程序支持哪些服务。基本信息填写完成之后,小程序的注册工作就结束了。

2 开发工具及准备工作获取AppID

如果你要开发一个需要发布的小程序,在你的公众号里找到设置->开发设置,找到AppID



开发工具安装

下载:登录小程序公众号之后,找到首页,有开发工具下载,帮助文档等。



添加项目

下载安装好开发工具,开始添加项目。



在AppID处填上你公众号的AppID.
项目名称随便填。
项目目录可以直接指向Demo地址,也可以指向一个空的文件夹(可以选择quick start项目)。
代码编译

编译选项使用默认设置即可,每次保存之后会自动编译。当你的控件正常显示之后,表示编译结束。当然,也可以查看Console.
当Console显示编译完毕,但你的控件没有完全显示时,应该是你电脑速度太慢,关掉工程,重新打开即可。
调试

-------- 调试期间不要修改代码。只能在编辑页面修改,保存之后,需要重新调试。
-------- 调试支持断点调试,Console可以直接写代码辅助调试,类似浏览器console的功能。
-------- 如果控件的布局总是调不好,最好直接在调试界面的Wxml里调试,可以清晰的看到调用了哪些class,每种class的哪些属性在起作用。
预览

管理员有预览项目的功能,即在手机上看小程序的效果。
开发工具中找到“项目”一栏->预览,然后拿微信扫描即可。可使用半小时。
微信上可以在"发现"->"小程序"中找到你的小程序开发版本。
代码上传

代码上传之后可以邀请其他微信用户体验,或者提交审核。
在开发工具中选择选项->基础信息->上传


体验

代码上传之后,可以邀请其他成员体验,但必须先把他们设置为体验者。
设置方式:公众号登录—>用户身份->体验者->绑定
每个账号可以绑定10个体验者。
体验者同意体验后可在其微信的发现->小程序里找到体验版本。
3 功能确认功能确认就是确认你的小程序到底要完成什么功能,为什么要单独写这个呢?如果你的小程序功能不符合要求,那审核是过不了的。
下面几项要重点阅读:
个人小程序允许开发的项目类别(请翻到页面下部)
微信小程序平台常见拒绝情形
审核规范
4 框架介绍和小技巧分享 在学习小程序的框架前,需要学习一些JS,CSS 的知识。
小程序框架详细介绍请参考:小程序教程 。这里不再赘述。请务必仔细阅读官方文档。
本文仅描述一些小技巧。
网络访问注意事项

---------小程序无法直连外部URL,就是外部页面
---------访问服务器,比如API接口
访问服务器的API接口描述:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html
注意:request 仅支持https的访问方式。另外,你访问的域名必须在公众号账号设置,否则调试代码会报错。
request域名的设置方式: 公众号->设置->开发设置 ,见下图


域名每个月只能设置五次,谨慎修改。
修改域名之后务必到开发工具的项目->配置信息中进行刷新,这样域名才能生效。
如果只是希望测试URL是否好用,不确定最终是否使用这个服务器,可以在开发阶段去掉域名检测,开发工具->项目:

布局引用

在使用.wxss描述控件的布局和样式时,同样的控件布局可以写在一个公用的wxss文件里,其他wxss可以再引用这个公用文件,比如:
@import "../../common/common.wxss";
主页设置

主页不需要特殊设置,在app.json的pages属性里,排在第一个的就是主页。下图中的主页就是index
"pages":[ "pages/index/index", "pages/components/identify/identify", "pages/components/dict/dict", "pages/components/express/express", "pages/components/general/general", "pages/components/mine/mine" ]Pages分类管理

尽量每一个页面放在一个子文件夹里,代码看起来清晰。在下图中,components下面有五个子页面。



列表渲染

当同一个View中需要放多个格式相同的控件时,尽量使用列表渲染的方式,代码容易维护,样式也美观。
可以参考博客:
http://blog.csdn.net/huangmeimao/article/details/76038974
图片格式

1 微信小程序中使用的图片size尽量要小,格式为.png.
可以在网上找在线格式转换工具或者图片缩小工具修改图片。
图片过大会影响代码审核和小程序工作效率,尤其是加载。
背景图设置

背景图即某个VIEW的背景图片,比如滚动图,目前仅支持url方式的图片。
详见博客:http://blog.csdn.net/huangmeimao/article/details/75513508
当然,你在开发工具中调试时,本地图片做背景图也是可以的,但是手机上预览会看不到图片。
提供图片存储的服务器有很多,自己找个地方存好,获取URL就可以了。比如CSDN,七牛。
布局控件自适应

自适应就是你的布局不管在什么手机上都能显示,布局随手机屏幕大小进行缩小和放大。
只要把所有的尺寸相关单位修改为rpx即可,有时候你下载的Demo可能有其他尺寸单位,比如px,rem.
转换公式:
1px=2rpx
1rem约等于35rpx
标题栏、导航栏、状态栏、窗口

它们的格式在app.json的windows里设置,比如:
"window":{ "backgroundColor":"#f4f4f4", "backgroundTextStyle":"light", "navigationBarBackgroundColor":"#FF5722", "navigationBarTitleText": "智能生活宝", "navigationBarTextStyle":"#FFFFFF" },详细说明见:
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html
除了windows里定义的属性,其他的格式是不可以修改的。
比如,标题栏中有无回退键,关闭键等。
----------导航栏可以通过tabBar设置多个导航,但仅可以指定页面、图标,字体等。位置什么的就不要考虑了。最少配置2个,最多配置五个。
比如下面配置了页面和帮助两个导航栏:
"tabBar":{ "color": "#959394", "selectedColor":"#959394", "backgroundColor":"#f0f0f0", "borderStyle": "white", "list": [ { "pagePath":"pages/index/index", "iconPath":"pages/images/home_b.png", "selectedIconPath":"pages/images/home.png", "text": "首页" }, { "pagePath":"pages/components/mine/mine", "iconPath":"pages/images/mine_b.png", "selectedIconPath":"pages/images/mine.png", "text": "帮助" } ] },效果图如下:


图片导航到页面

   可以给图片或者图片所在的View设置事件,比如bindtap,然后在事件处理函数里调用设置导航的API函数:

wx.navigateTo({
url:"../components/general/general?code=menu"
})
“?”后面是提供给页面的参数名称和值。
详细介绍见:https://mp.weixin.qq.com/debug/wxadoc/dev/api/ui.html
多个页面功能相似时的处理

当多个页面的布局相同,处理方式也相同,只是要处理的数据不同时,就可以仅写一个公共页面,其他控件导入页面时,通过传入不同的参数进行区分。
wx.navigateTo({
url:"../components/general/general?code=menu"
})
比如,上面在导航时,传入的参数code指明是menu 类型。
详细可参考博客:http://blog.csdn.net/huangmeimao/article/details/76418753
里面提供的代码中general页面就是一个公共页面。
图片和文字等多个空间同时触发一个事件

如果你希望再同一个View中的图片和文字或者其他控件触摸时都触发同一个事件,直接把这个事件放在view的配置里。
Text/textarea 焦点控制

Text/textarea控件仅用来显示数据时,要关掉自动聚焦,否则你所在页面时,点击控件就会自动弹出键盘。
属性auto-focus不设置或者值为 false即可。
文本滚动

  若需要显示的文本内容大于文本框,能够自动出现滚动条,而不是放大文本框。

参考博客:
http://blog.csdn.net/huangmeimao/article/details/76408327
表格制作

参考博客:http://blog.csdn.net/huangmeimao/article/details/76038974
Input控件输入文字清空

请参考博客:http://blog.csdn.net/huangmeimao/article/details/74936966
5 模板下载和使用刚开始可以去网上找一些免费的Demo学习一下,事半功倍。
6 发布当你确定你的小程序没有什么问题了,至少功能完善,没有严重bug.
可以开始发布。
上传代码

发布之前必须先上传代码,上传方式请参考第2节。
提交审核

登录微信公众平台->开发管理


图中开发版本即你最后一次上传的版本,点击“提交审核”之后,就会在审核版本中看到。一般个人审核需要1到3天吧,反正我的最长是3天,且中间有周末。最短的不到两小时。
提交审核后,若还没有进入审核系统,可以撤回审核。
审核通过后你会在管理员微信收到审核通过通知,当然微信公众号也可以查询。
审核通过后,需要你登录微信公众号手动点击发布,才会再线上版本中显示,这时用户就可以使用了。
7 推广登录微信公众号->推广->修改关键词

每个人可以写10个关键词,以便用户在搜索公众号时可以搜到你的小程序
二维码

分享你的二维码图给用户
登录微信公众号->设置,下载二维码



通过公众号关联

如果你有其他公众号,也可以在其他公众号里关联你的小程序。
8 数据查看 登录微信公众号->数据分析,可以看到小程序各页面的访问情况和人数,转载等信息。

转载于:微信小程序联盟签约博主 黄眉毛

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 因新工作主要负责微信小程序这一块,最近的重心就移到这一块,该博客是对微信小程序整体的整理归纳以及标明一些细节点,初...
    majun00阅读 7,312评论 0 9
  • 2017大型国际会议在泉召开,泉州燃气为世界级盛事“保驾护航” 原创 2017-8-16 高压管网分公司 陈隐秀 ...
    陈隐秀阅读 381评论 0 0
  • 坚持一件事有多难?读书、写字、健身、早起…… 给自己制定了详细目标。每日习字半小时、写文一篇,每周...
    金水哥的小四喜阅读 393评论 0 0
  • 2018年7月20日 星期五 晴 亲子日记第191天 这几天小侄女在家里我和孩子们思想都放松了,每天晚上的古诗也没...
    乐乐仔仔妈妈阅读 117评论 0 0
  • 相信以后还会有III,IIII,V…… 类型转换是有代价的 最近在写虚拟机解释引擎的时候遇到的这个问题。Java虚...
    qc1iu阅读 679评论 1 0