微信小程序入门

1. 申请账号

进入微信公众平台,申请小程序账号

注意用于注册的邮箱地址必须符合以下条件:

  • 未用于注册过微信公众平台
  • 未用于注册过微信开放平台
  • 未用于绑定过个人微信号的邮箱

每个邮箱只能申请一个微信小程序.

image

注册后需要登记信息,按照引导填写即可,不再赘述.

完成注册后登录,进入登录界面.此页面可以完成很多操作,比如修改小程序名称,修改小程序头像等

image

2. 下载开发者工具

下载地址

image

选择稳定版Stable build(稳定版的bug已经很多了...),根据系统下载合适的版本

3. 新建小程序项目

打开微信开发者工具,扫码登录后新建项目

image
  • 项目名称:自己起名字,该名字不会影响用户看到的小程序的名字(用户看到的小程序的名字在微信公众平台修改)
  • 目录:项目文件存放的路径,任意选择
  • APPID:微信公众平台登录后,在设置-账号信息中可以找到APPID.如图:
    image
  • 开发模式:小程序或者小游戏,开发小程序时选择小程序
  • 后端服务:如果自己编写后端,则选择不使用云服务;如果不自己搭建,则可以使用云开发或者腾讯云.后端服务按需选择.云开发最为简单方便.

4. 开发工具概览

在上一步中,选择了不使用云服务后,点击新建进入如下界面

image

5. 文件介绍

5.1 项目配置文件

每个小程序新建时都会自动生成一个项目配置文件(project.config.json),该文件位于项目根目录下.其内部代码可以用来配置小程序的项目名称,APPID等内容,如图所示:

项目配置文件

5.2 主体文件

5.2.1 app.json:必填文件,用于描述小程序的公共配置

​ 主要包含了小程序的所有页面的路径地址、导航栏样式等。

​ 代码如下:

{
    "pages": [
        "pages/index/index",
        "pages/logs/logs"
    ],
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "WeChat",
        "navigationBarTextStyle": "black"
    },
    "sitemapLocation": "sitemap.json"
}
表格_1
5.2.1.1 pages属性

​ pages属性对应的是所有页面的路径数组.如果要添加页面,则在pages中写页面的路径,然后会自动生成页面的基本配置文件.路径数组中第一个路径是小程序的初始页面.注意添加页面路径时,每个路径之间有,相隔,最后一个路径元素后没有,

​ 如果要删除页面,则需要手动删除目录和这里的路径.

5.2.1.2 window属性
表格_2

HexColor表示只支持十六进制颜色表示方式.例如#ff0000表示红色,也可简写为#f00,并且大小写不限

5.2.1.3 tabBar属性

tabBar表示小程序窗口底部的tab栏.属性值如下表:


表格_3

其中,list接受一个数组,只能配置2-5个tab。tab按数组的顺序排序,每项都是一个对象,其属性值如表:


表格_4

代码示例:如下构造了有两个页面的tabBar,tab文字内容分别为首页和设置

"tabBar": {
        "list": [
            {
                "pagePath": "pages/home/home",
                "text": "首页"
            },
            {
                "pagePath": "pages/settings/setting",
                "text": "设置"
            }
        ]
    }
5.2.1.4 networkTimeout属性

该属性用于设置各类网络请求的超时时间,其属性值如下表


表格_五

示例代码:

    "networkTimeout": {
      "request": 20000,
      "connectSocket": 20000,
      "uploadFile": 20000,
      "downloadFile": 20000
    }

5.2.1.5 debug属性

开启debug模式,在开发者工具的控制台面板中调试信息将以info的形式给出,主要包括Page的注册、页面路由、数据更新

事件触发等,可以用来快速定位bug
.

5.2.2 app.js:必填文件,用于描述小程序的整体逻辑

app.js是小程序的全局逻辑文件,代码如下:

//app.js
App({
    onLaunch: function() {
        // 展示本地存储能力
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)

        // 登录
        wx.login({
            success: res => {
                // 发送 res.code 到后台换取 openId, sessionKey, unionId
            }
        })
        // 获取用户信息
        wx.getSetting({
            success: res => {
                if (res.authSetting['scope.userInfo']) {
                    // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
                    wx.getUserInfo({
                        success: res => {
                            // 可以将 res 发送给后台解码出 unionId
                            this.globalData.userInfo = res.userInfo

                            // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
                            // 所以此处加入 callback 以防止这种情况
                            if (this.userInfoReadyCallback) {
                                this.userInfoReadyCallback(res)
                            }
                        }
                    })
                }
            }
        })
    },
    globalData: {
        userInfo: null
    }
})

将其中的方法体删除,得到以下代码框架:

//app.js
App({
    onLaunch: function() {
       
    },
    globalData: {
        
    }
})

由此可见,所有内容都写在App()函数内部,并且彼此之间用,隔开.App()函数的用法暂时在后面的文章介绍.

5.2.3 app.wxss:可选文件,小程序公共样式表

app.wxss是全局样式文件,内容如下:

/**app.wxss**/
.container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 200rpx 0;
  box-sizing: border-box;
} 

该文件是可选文件,可以省略不写.

5.3 页面文件

小程序建立时默认生成pages文件夹,用来保存页面文件.每个页面有自己的二级目录.如图所示:

<center><image src="http://r.photo.store.qq.com/psb?/V10hZptb2aUDnK/lTEFjOtrgYBVSOEPomRXsbPcRJX9tPVbtqz9jXPRUng!/r/dMMAAAAAAAAA" /></center>

每个页面由4个文件构成:

  • wxml文件:构建页面的结构,包括组件、事件等,用户最终看到的页面效果由该文件决定

  • wxss文件:用于设置显示效果,该文件规定的显示效果如果与app.wxss中冲突,则将覆盖app.wxss.未覆盖的不受影响.

  • js文件:用于设置当前页面的逻辑代码

  • json文件:用来重新设置app.json中window属性规定的内容,只对当前页面有效,不影响其他界面.

    json文件的可用属性如下表:

表格_6

例如对home页面的配置如下:

{
  "navigationBarBackgroundColor": "#ffffff",
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "首页",
  "backgroundColor": "#ffffff",
  "enablePulDownRefresh": true,
  "backgroundTextStyle": "light"
}

上述配置表示:

  • 导航栏背景颜色白色
  • 导航栏标题颜色黑丝
  • 导航栏标题文字内容为"首页"
  • 窗口的背景色为白色
  • 开启下拉刷新
  • 下拉loading的样式为light

5.4 其他文件

​ 除了以上常用文件,小程序允许用户自定义路径和文件名创建一些辅助文件.例如在utils文件夹中存放公共JS文件.默认的utils文件夹中有一个util.js文件.该文件可以作为模块被其他页面的JS引用.具体方式在以后的文章介绍.

​ 除此之外,还可以定义一些文件夹用来存储图片等.

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

推荐阅读更多精彩内容

  • 前言: 前一章简述了微信小程序的注册,既然注册了,那么肯定要开发微信小程序了。 俗话说的好:工欲善其事必先...
    Smile__EveryDay阅读 3,692评论 1 12
  • 前言: 文中参照官方文档, 加入一些自己的理解. 入门(一)基础(二)进阶(三)综合(四) 账号申请 登录获取A...
    夏天然后阅读 3,029评论 0 8
  • 上一章我们已经介绍了微信小程序的目录的整体了解以及app系列文件的讲解,今天我们具体学习下Pages文件夹下的文件...
    Smile__EveryDay阅读 41,401评论 0 6
  • 如果【原创】 2011-11-26 11:45 如果那个季节 不到诗歌的绿地踏青 就不会跟着你诗歌的自由风任意东西...
    我是兰姐阅读 163评论 0 0
  • 诗曾是歌。 “关关雎鸠,在河之洲。窈窕淑女,君子好逑。” 河边游乐的小伙自在的唱着,逗得大...
    武汉全智贤阅读 137评论 0 2