MOOC微信小程序开发从入门到实践~笔记

1、图标网站【icon】www.iconfont.cn

2、新建项目是必须需要AppID

3、app.js是页面逻辑文件
app.json是页面全局配置文件(pages windows)
app.wss全局页面的样式
project config.json项目的配置文件

4、获取用户信息:wx.getUserInfo()

5、【tabBar】:如果小程序是一个多tab应用(客户端窗口的底部或顶部有tab栏可以切换页面),可以通过tabBar配置项指定tab切换时现实的对应页面

属性 类型 必填 默认值 描述
color HexColor tab 上的文字默认颜色,仅支持十六进制颜色
selectedColor HexColor tab 上的文字选中时的颜色,仅支持十六进制颜色
backgroundColor HexColor ab 的背景色,仅支持十六进制颜色
borderStyle string black tabbar 上边框的颜色, 仅支持 black / white
list Array tab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab
position string bottom tabBar 的位置,仅支持 bottom / top

其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。

tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:

属性 类型 必填 说明
pagePath string 页面路径,必须在 pages 中先定义
text string tab 上按钮文字
iconPath string 图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon。
selectedIconPath string 选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon。
//在项目的app.json文件中输入:{"page":[],"windows":{},
"tabBar":{"list":["pagePath":"pages/index/index","text":"首页""iconPath":"image/first1.png""selectedIconPath":"images/first2.png"},{"pagePath":"pages/logs/logs","text":"日志"}],
}

·创建image文件夹,将图标下载进去

6、授权登录页面:
(1)使用wx.login()获取code
(2)通过wx.request()发送code,并访问后台(开发者服务器)
(3)微信后台使用登录凭证校验接口(appid+appsecret+code)实现导入接口服务
(4)接口返回session_key(小程序唯一标识) + openid等
(5)后台产生自定义登录状态,与openid,session_key关联
(6)后台返回小程序前端(自由登录状态)
(7)将返回的信息存进storage中,方便以后获取

7、同步缓存:处理完本方法才会继续执行
异步缓存: 不会阻塞当前的任务

【注:数据缓存上限为10MB】

8、一般将登录和注册相关的代码放在app.js中

9、点击“详情”,选择不校验合法域名

10、wx.showModal()模态对话框

11、相对路径:…/指的是当前文件所在上一级目录
./指的是当前目录
…/…/指的是当前文件所在的上上级目录
绝对路径:“/pages/test/test”

12、微信官方UI库WeUI:是一台同微信原生视觉体验一直的基础样式库。
包含button、cell、dialog、progress、toast、article、actionsheet、icon等格式元素
下载地址:https://github.com/Tencent/weui-wxss
开发者可以将样式库下载并使用微信web开发者工具打开dist目录并导入,可以预览样式库(提前复制style文件夹,并在app.wxss文件中加入@import‘style/weui.wxss’)

13、将表单中输入的值传入后台:
在中加入bindchange事件

14、在.js文件中的data语句中加入变量并设置初始值name:’’
在.js文件中加入changeName:function(e){this.setData{name:e.detail.value}}函数

15、bindtap事件的绑定:
可以绑定在.wxml组件上,并触发事件(需要在.js逻辑层中定义相应的处理函数)

16、小程序API的路由(5种):

  • wx.switchTab:跳转到tabBar页面,并关闭其他所有非tabBar页面
  • wx.reLaunch:关闭所有页面,并打开某个页面
  • wx.redirectTo:关闭当前页面,并跳转到相应的某个页面。但不允许跳转到tabBar页面
  • wx.navigateTo:保留当前页面,并跳转到相应的某个页面。但不允许跳转到tabBar页面【页面会自动添加返回的标识】

【注:小程序中的页面栈最多只有10层】

  • wx.navigateBack:关闭当前页面,返回上一层或多级页面。可以通过getCurrentPages获取当前的页面栈,来决定返回多少层。

17、声明变量和变量的赋值:
(1)在.js文件的data数组中定义变量,并赋值
A:‘a’,
(2)可以在.js文件中通过var语句定义变量,并赋值

var newList = this.data.list.sort(this.randSort);

(3)在wxml文件中使用{{ }}形式将文字变成变量,并在js文件中对其赋值

 <button bintap='beginAnswer'>{{msg}}</button>this.setData({msg:'测试结束')}//更阿贵数据的同时会重新展示更新的页面或者this.data.msg='测试结束'//只改变msg的值,不会更新页面

18、 this.setData 中不能使用 console.log( )语句, 如果需要查看赋值后变量的值,需要在 this.setData({ })语句外使用 console.log( )打印 查看变量的值。

19、带参数的跳转页面:
(1)在js文件中使用生命周期函数来获取页面参数,给生命周期函数function( )中定义一个值
onLoad:function(options){ A:options.A-0}
(2)使用?传递参数

url: ‘/pages/result/result?A=’ + this.data.A + ‘&B=’ + this.data.B +
‘&C=’ + this.data.C + ‘&D=’ + this.data.D + ‘&correct=’ +
this.data.correct + ‘&error=’ + this.data.error

20、Math.random( ):产生一个[0,1)之间的随机数

21、sort()方法用于对数组元组进行排序

22、获取全局对象,使用getApp

23、传递对象

// 通过JSON.stringify(obj) 方法将对象转化为字符串进行传递
// 跳至结算页
/*** 向下一级页面传递对象参数*/buyAction: function(e) {var model = JSON.stringify(e.currentTarget.dataset.obj);wx.navigateTo({url: '../detail/detail?model=' + model,})}
在下个页面接收
//在下个页面的onload中获取,onLoad: function (options) {var model = options.obj;console.log(options.obj)this.setData({model:model})},
传递数组/*** 向下一级页面传递对象参数*/buyAction: function(e) {var model = JSON.stringify(selected_list);wx.navigateTo({url: '../detail/detail?model=' + model,})}在下个页面接收
/*** 生命周期函数--监听页面加载*/onLoad: function (options) {// 先将字符串转化为数组var list = JSON.parse(options.selected_list)console.log(list)},

24、在app.js中获取用户信息,使用wx.getSetting()

25、小程序的登录流程:
小程序通过 wx.login()获取 code, 然后通过 wx.request()发送 code 至开发者服务器,开发者服务器将登录凭证 appid、 appsecret 与 code 用于校验微信接口,微信接口服务向开发者服务器返回用户唯一 标识 OpenID 和 会话密钥 session_key。开发者服务器实现自定义登录状态与 openid 与 session_key 关联,并向小程序返回自定义状态。小程序将自定义登录状态 存入 storage,并用于后续 wx.request 发起业务请求。
对于某个微信小程序,每个用户访问该小程序都有产生一个唯一的 openid,这 个 openid 为用户访问该小程序的标识符,即每个用户的 openid 都是不一样的。因 此,可以把 openid 作为用户唯一标识符(类似身份证号),并存于数据库中用以后 续操作。
由于 app.js 会先于其他页面执行,所以比较适合处理一些注册函数,因此将 wx.login( )方法写在 app.js 文件中。

26、wx.request():主要用于发送 https 网络请求
提供一个开放接口: https://zjgsujiaoxue.applinzi.com/index.php/Api/Weixin/code_to_openidv2

// 登录wx.login({
success: res =>{ // 发送 res.code 到后台换取 openId, sessionKey, unionId
wx.request({
url: 'https://zjgsujiaoxue.applinzi.com/index.php/Api/Weixin/code_to_openidv2',
data: { 'code': res.code, 'from': 'wxbf9778a9934310a1' },
success: function (res) {
console.log(res.data) //将 SESSIONID 保存到本地 storage
wx.setStorageSync('jiaoxue_OPENID', res.data.openid)
},
fail: function (res) {
console.log('res' + res)}
})
}
})

27、数据缓存:
可以通过数据缓存 API 可以对本地 缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB。 localStorage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。 注意: 如果用户储存空间不足,微信会清空最近最久未使用的小程序的本地缓 存。因此不建议将关键信息全部存在 localStorage,以防储存空间不足或用户换设备 的情况。
同步=异步+Sync(synchronization)
同步函数与异步函数之间的区别是,异步不会 阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。另外异步函数中 含有成功回调函数,可用于表示数据处理成功后的操作。

28、wx.showModel(Object object)显示模态对话框:

属性 类型 默认值 说明
title string 提示的标题
content string 提示的内容
showCancel boolean true 是否显示取消按钮
cancelText string ‘取消’ 取消按钮的文字,最多 4 个字符
cancelColor string #000000 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串
confirmText string ‘确定’ 确认按钮的文字,最多 4 个字符
confirmColor string #576B95 确认按钮的文字颜色,必须是 16 进制格 式的颜色字符串

success function 否 接口调用成功的回调函数【confirm和cancel事件】

29、 wx.canIUse(‘ ’):判断小程序的API,回调,参数,组件等是否在当前版本可用

30、由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => { }

31、bindchange 事件:
当输入框中的内容发生改变时, 触发对应的事件处理函数,并且输入框中的值可以通过 event.detail.value 来获取。
32、wx.showToast( )与 wx.showMaodel( )一样是界面交互中的一种消息提示框

属性 类型 默认值 必填 说明
title string 提示内容
icon string ‘success’ 图标
image string 自定义图标的本地路径,image 的优先级高于 icon
duration number 1500 提示的延迟时间
mask boolean false 是否显示透明蒙层,防止触摸穿透
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都 会执行)

33、icon的合法值
success 显示成功图标,此时 title 文本最多显示 7 个汉字长度
loading 显示加载图标,此时 title 文本最多显示 7 个汉字长度
none 不显示图标,此时 title 文本最多可显示两行,1.9.0 及以上版本支持

34、由于照搬了豆豆云的后台,因此涉及到“加入课程”的概念,开发者需要向后台申请一个课程,得到课程号,申请链接如下:
http://zjgsujiaoxue.applinzi.com/index.php/Api/User/createCourse?appid=123&courseName=1028 教学&questionSet=1012&creater=大佬
其中 appid 代表开发者小程序的 appid,courseName 代表要创建的课程的名字,开发者可自定义,questionSet 代表实现预设的题目集(后续无法更改),creater代表创建者。
已创建过课程,课程号:11686 (请确认appid: 无误,如果需要修改课程信息请联系管理员)
35、CSS position 的属性值

  • absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”,“right” 以及 “bottom” 属性进行规定。
  • fixed: 生成绝对定位的元素,相对于浏览器窗口进行定位。
    元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
  • relative:生成相对定位的元素,相对于其正常位置进行定位。
    因此,“left:20” 会向元素的 LEFT 位置添加 20 像素。
  • static: 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者z-index声明)。
  • inherit: 规定应该从父元素继承 position 属性的值。

36、CSS margin-right 属性

描述
auto 浏览器设置的右外边距。
length 定义固定的右外边距。默认值是 0。 % 定义基于父对象总高度的百分比右外边距。
inherit 规定应该从父元素继承右外边距。

37、Display 属性
display: inline 内联元素只需要必要的宽度,不强制换行。
display: block 块元素是一个元素,占用了全部宽度,在前后都是换行符。
display: none 或 visibility: hidden 虽然都可以实现元素和组件的隐藏,但是
display: none 和 visibility: hidden 会起到完全不同的效果
visibility: hidden 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display: none 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是
38、class 和 style 的区别:

<view class="weui-cell__hd" style="position: relative;margin-right: 10px;">

在上图中的 wxml 代码中我们经常会发现一个 view 属性中既有 class=“weuicell__hd” ,又有 style=“position: relative;margin-right: 10px;”

虽然这他们都可以实现页面的修改,但是两者之间还是有区别的。

在 wxml 当中前端读取数据都是通过就近原则所以 style 是直接在页面语句中的语句中进行编写,在程序执行的时候,style>class

39、style的部分属性设置:
margin-right:是指图片的右测距离的大小
font-size:字体大小的设置

40、wxss中的样式设置:
border-bottom:框的底部样式,1px solid #eeeeed
height :可以改变选项间隔,
align-items:的参数改为 left 就可以左对齐,
padding :可以修改选项道题干的距离。
margin-top:属性用于控制该组件与上一个button组件之间的距离
text-align:值为center==>使得该组件居中
margin: 20px 15px第一个参数是button上下的距离,第二个参数是左右的距离

41、let 只能在一块(即一个{}中的区域叫做一个块域)中使用定义过的变量,可以是用 var 来定义变量,因为 var 是全局变量,跳出 for 循环以后还是可以使用,还有 const 用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,跳出块也不能访问变量,而且不能修改。

42、其中需要修改的 API 分别是:
章节 Url:Gateway/route?method=pingshifen.question.chapter&course_id=10014
专题 Url:Gateway/route?method=pingshifen.question.special&course_id=10014
收藏 Url: Gateway/route?method=pingshifen.question.collect&course_id=10014
提交答案 Url: Gateway/route?method=pingshifen.question.submit&course_id=10014
题号 Url: Gateway/route?method=pingshifen.question.get_id_items&course_id=10014
题目详情 Url: 'Gateway/route?method=pingshifen.question.get_info&course_id=10014

43、位置信息相关API调用:
纬度和经度:浮点数、范围是-90~90
(1)wx.chooseLocation(Object,Object):打开地图选择位置。【gcj02】
获取所选目录位置的经纬度,并赋值给choosen数组的longitude(经度)和latitude(纬度)
(2)wx.getLocation:获取当前位置的经纬度、速度
可赋值给got数组的longitude和latitude,当用户离开小程序后,此接口无法调用。
type string 默认值是wgs84(返回gps坐标),gcj02返回可用于wx.chooseLocation的坐标
44、button按钮中的disable属性的使用:
(flag1和flag2初始值都是false,成功选择位置和成功获取当前位置时,flag1和flag2编程true)

<button class="weui-btn" type="primary" disable="{{!(flag1&&flag2)}}">测距</button>

45、Math函数:

  • Math.asin反正弦函数
  • Math.sqrt()计算平方根
  • Math.pow(x,y)用于计算x的y次幂的值
  • Math.round()用于数字的四舍五入
  • toFixed()可以把number四舍五入为制定小数位数的数字
  • Rad:function(d){
    return d * Math.PI / 180.0;}
    //该函数是用来进行单位换算,将度数转换成弧度

46、success回调函数的使用:
(1)success fuction(res){},这里面不能调用函数以外的this
(2)success (res)=>{}可以this到success以外的data

47、本地后台环境安装与测试:
(1)Wampserver:【集成了Windows、Apache、MySQL、PHP的本地集成环境】
选择English=>ok=>accept=>next=>E盘=>next=>next=>install
iexplore.exe (Internet Explorer)will be used as Browser by Wampserver.Do you want to choose another Browser installed on your system?
=>next =>finish
·Wampserver安装后缺MSVCR110.dll:
缺MSVCR110.dll下载这个:Visual C++ Redistributable for Visual Studio 2012 Update 4
缺MSVCR120.dll下载这个:Visual C++ Redistributable Packages for Visual Studio 2013
=>必须显示绿色标识(红色和橙色都不行)
橙色可以进入计算机管理,关掉服务中的SQL ServerReporting Services

48、本地环境安装与测试:
·安装Sublime【脚本编辑器】
·搭建本地环境:将提供的后台代码 1 放在Wampserver安装目录下wamp64->www文件夹中
单击绿色图标,单后单击phpMyAdmin按钮,进入浏览器中,弹出phpMyAdmin登录界面
用户名:root 密码为空=>点击“执行”
点击新建,新建数据库的名字命名为 pingshifen,排序规则选择 utf8_general_ci,点击 创建即可创建一个名为 pingshifen 的数据库。
新建完之后,选择 pingshifen 数据库,点击导入,然后点击浏览,选择提供的 pingshifen.sql 文件,选择完后,点击页面最下方的执行,将 pingshifen.sql 导入到本地数据 库中。

49、修改服务器地址:
打开微信开发者工具的项目,=>打开config.文件=>将apiUrl改为 http://127.0.0.1/1/index.php/Api
注意,其中从第 3 章到第 7 章涉及到的一下注册 Api 接口与申请课程号的网的前缀需要 改成本地地址,前往 http://127.0.0.1/1/index.php/Page/Index/register 重新注册一下 api 接 口,前往 http://127.0.0.1/1/index.php/Api/User/createCourse?appid=?????? &courseN ame=1028 教学&questionSet=1012&creater=大佬重新申请一下课程号,申请完课程号后不 要忘记修改一下 config.js 中的 courseId。
50、api实现前后台交互:
http://127.0.0.1/1/index.php/Api/User/current
上面 url 中,
http://127.0.0.1/1为服务器地址,
index.php为入口文件,
Api/User/current 为 api 位置
Api/User/current 中 Api 代表目录名,User 代表 UserController 控制器,current 为控制器中的方法
·前后台的交互是单向的,服务器不会主动向前台发送数据。

51、在PHP中使用ajaxReturn方法返回数据 $this->ajaxReturn(‘测试通过’);
每次修改后台代码都要及时保存
可以再.js文件中使用wx.request({})访问后台代码中的方法

wx.request({url:userUrl+'test',data{'testA':'A'}success:function(res){console.log('请求结果',res)}})

52、在后台代码中,可以使用I(‘参数名’)方法获取到http请求中的数据,可以加上参数

public function test(){$data = [];$data['I()'] = I(); $data["I('testA')"] = I('testA');$this->ajaxReturn($data);}

53、数据库的增删改查:
在PHPMyAdmin数据库中新建一个数据表。可以选择字段、类型,勾选A_I以使其自增,Collation代表数据标的字符集
·查:使用where()接受一个数组作为查询参数,一个数组可以由多个参数
(1)select:会返回所有满足where条件的数据
(2)find:只返回满足where条件的第一条数据
·增:使用add增加记录。add接收一个数组作为参数,数组内容为将要插入到数据表中的值
·删除:使用delete删除记录
·修改:使用save修改记录

54、新浪云环境配置:
(1)创建新浪云运用:
· 注册新浪云账号,并登陆
注册地址: http://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKW3rYGuga99nomufo zQdg.html
· 进入首页,点击控制台,选择云应用SAE
· 单击创建新应用
· 应用中部署环境的开发语言,选择PHP,
· 运行环境选择标准环境,
· 语言版本选择5.6
· 代码管理选择SVN
· 应用信息的二级域名和应用名称可以根据自己的要求任意填写
· 最后单击“创建应用”
(2)代码版本管理:一个应用中可以创建多个版本,单击创建的应用,进入应用,并找到代码管理。
(如果要使用SVN对代码进行管理,需要下载并安装SVN。)
地址为:https://tortoisesvn.net/downloads.html
【详细介绍使用 TortoiseSVN 向新浪云部署代码:】
1. 创建一个新文件夹作为本地工作目录(Working directory),可以使用应用名为文件夹名。如,为我的应用 jiaoxue6 创建本地工作目录。
2. 进入 jiaoxue6 的文件夹,从新浪云的 SVN 仓库检出(checkout)一个应用的其中 一个版本的代码,右键–>点击“SVN Checkout”
3. 在弹出页面中填写SVN仓库地址路径即可,这里是:https://svn.sinacloud.com/jiaoxue6/1,对应的是教学 6 里面的第一个版本,
第一次操作会弹出用户名和密码,,同样在SVN仓库中找到相应的用户名,输入自己设置的安全密码
4. Reversion 处,“HEAD revision”是指最新版,也可以指定 Revision 为任意一个版本。
5. 点击 ok 记录 checkout 新浪云中的代码。
6. 然后将我们提供的后台代码放在 jiaoxue6 的文件夹目录下,(不替换原有的2个文件)替换 checkout 出来的代码。 替换完后,回到 jiaoxue6 所在的目录,右键->点击 SVN Commit。
7. 弹出对话框后,点击 All 全选文件上传,点击 ok 即可将后台代码上传至新浪云。
(3)开启共享型MySQL服务:
1. 将后台代码上传至新浪云后,我们还需要在新浪云创建一个数据库,我们选择共享型 MySQL,打开服务开关,开启共享型 MySQL 服务。
2. 点击“使用 phpMyAdmin 管理”进行数据库的管理。
3. 进入后选择导入,点击浏览,导入提供的 pingshifen.sql 文件。这里也可以选择自己本地导出的数据库,这样数据库里就有自己的数据了,不需要从头操作一遍了。选择文件后, 点击执行即可。
4. 成功导入数据库后,回到共享型 MySQL 服务页面,查看数据库连接信息。【需要将数据库的地址保存下来】
(4)修改:
1.其中,数据库连接信息是用于将后台代码与数据库进行连接,因此之前使用 SVN 上传 至新浪云的后台代码,需要修改数据库连接文件,使其与数据库成功相连。
2. 收下你打开“在线编辑”,代码目录为 Application/Common/Conf/config_sae.php和Application/Api/Conf/config_sae.php将数据库名,用户名与密码改为我们开启的数据库服务的数据库信息。(信息在共享MySQL中)
3. 然后只要改一下微信开发者工具中的内容, 将我们的项目中 config.js 的 apiUrl 第一行取消注释,并将域名改成自己的新浪云服务器的域 名,然后把第二行的注释掉。
【新浪云应用域名,即为代码管理中的版本访问链接】
7. 由于后台代码中使用了云缓存,因此需要打开数据库与缓存中的 Memcached 服务。这样新浪云上的后台才能真正跑起来
(https://www.imooc.com/learn/949可以进入网站学习关于promise的用法)

57、微信小程序的云开发:
新建一个使用云开发的小程序 => 选择开通云开发(环境名称有自己填写,环境ID会自动生成) =>
在模拟器中点击“点击获取openid”后会提醒检查login云函数是否已部署 => 双击打开cloudfunctions目录 => 右击login => 选择“上传并部署:云端安装依赖(不上传node_modules)”
重新编译代码 => 单击获取openid

58、云开发数据库:
· 新建集合:打开云开发控制台,进入数据库管理页 => 单击“集合名称”或“+”创建集合
· 新增记录:单击“下一步”,根据提示打开pages/databaseGuide/databaseGuide.js文件 => 定位到onAdd方法 => 将该方法中注释掉的代码解除注释 => 单击“编译” => 单击“新增记录”
可以在云开发 => 数据库 => counters集合中看到新增的记录
· 查询记录:单击“下一步” => 打开pages/databaseGuide/databaseGuide.js文件,定位到onQuery方法,将该方法中注释掉的代码解除注释 => 重新编译 => 单击“查询记录”
· 更新记录:单击“下一步” => 打开pages/databaseGuide/databaseGuide.js文件,定位到onCounterInc和onCounterDec方法 => 取消注释 => 单击“+”按钮,将数字加至6, => 打开云开发控制台,可以看到数据库counters集合里的最新一条记录里的counter值变成了6
· 删除记录:单击“下一步” => 打开pages/databaseGuide/databaseGuide.js文件,定位到onRemove方法 => 重新编译

59、云函数:
· 单击“快速新建云函数”按钮。根据云函数指引中的提示来学习云开发中如何定义一个云函数
· 可以单击“测试云函数”
· 在云函数根目录cloudfunctions撒花姑娘右键选择“新建Node.js函数”,并命名
· 在创建的cloudfunctionsd/sum/index/js文件中,将原有的云函数入口函数删除,然后添加如下代码:
//云函数入口函数

export.main=(event,context)=>{console.log(event)console.log(context)return{sum:event.a+event.b}}
  • 在pages底下的addFunction.js文件中调用命名的云函数
  • 右击cloudfunctions目录,选择“当前环境”,在可选环境中选择当前使用的环境
  • 在cloudfunc/sum目录撒花姑娘右键。断则“不上传并部署:远端安装依赖(不上传node_modules)”上传并部署命名的云函数
  • 完成后重新编译,单击“测试云函数”按钮,可以查看调用结果

60、如果需要微信的插件,需要登录微信公众平台,在设置中点击第三方设置=>点击插件管理=>添加插件
添加完之后会报错 => 原因是云开发数据库中没有需要的课本对应的记录=>需要惊醒数据库的导入。

61、需要修改云函数getUserCollectList目录下index.js中变量env的值,修改为自己的环境ID

MOOC微信小程序开发从入门到实践~笔记相关推荐

  1. 微信小程序开发从入门到实践 测试6

  2. 微信小程序开发快速入门

    最近整理文件,找到一个18年写的微信小程序开发快速入门,对于新手还是值得一看的,三年多过去了,可能一些接口已经更新了,不过,整体思想还是没变的. 如果你熟悉JavaScript,那你基本上看完这个文档 ...

  3. 微信小程序开发从入门到精通

    微信小程序开发从入门到精通 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识 ...

  4. 微信小程序开发基础入门笔记

    文章目录 vsc 安装插件(小程序开发助手-微信小程序开发助手) 日常注意: 微信小程序WXS模块的使用 框架 1小程序结构和传统的web结构 2 基本的项目目录 3全局配置app.js 4.运算 = ...

  5. 七天学习微信小程序开发(一)—— 学习笔记

    文章目录 前言 目标 第一天 -- 前端配置和编写 微信开发 微信小程序的代码结构 常用标签(wxml) 常用样式(wxss) 界面布局的技术 任务 第二天 -- 深度学习微信前端编写(一) 程序底部 ...

  6. 【TgM阅读笔记】《微信小程序开发——从入门到实战》(陈云贵、高旭)

    阅读笔记系列(二) 阅读前言: 速度笔记: 比较起来: 此处摘录前言内容简介同时用以后续文章目录大纲: 阅读前言: 读本书是基于三大前提下的: 了解到其基础设计方式有Java Web程序设计有共同对接 ...

  7. 【helloworld】-微信小程序开发教程-入门篇【1】

    1. 开篇导言 本节目标:旨在演示如何用开发者工具构建并运行简单的 helloworld 应用. 目标用户:无编程经验,但对微信小程序感兴趣的同学. 学习目标:开发者工具的基本使用流程,即创建.导入. ...

  8. 微信小程序开发的入门基础知识点

    一.小程序介绍_安装_使用 介绍小程序: 2017年1月9日,张小龙,腾讯. 支付宝现在也推出了小程序 无需安装,无需卸载,触手可及,用完即走 小程序基于微信,微信基于腾讯,腾讯有庞大的用户基数. 小 ...

  9. 微信小程序开发从入门到实战 --第1章 认识小程序

    第1章 认识小程序 1.1.1 微信小程序产生的背景 服务号 订阅号 企业微信 微信小程序 1.1.2什么是微信小程序 小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及&qu ...

最新文章

  1. vlc打开h264参数配置
  2. excel函数去重_Java 嵌入 SPL 轻松实现 Excel 文件合并
  3. 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )?
  4. Pyppeteer库之四:Pyppeteer的页面操作(下)
  5. (Matlab问题解决)运行matlab程序后,工作区不能显示变量
  6. 适用于Photoshop,Xd和Sketch的UI套件
  7. 学校计算机教室局域网的建立,校园局域网组建及配置.pdf
  8. spring配置数据源的4种方式--简介
  9. 为提升 DCP 传输效率,阿里工程师竟然这样做!
  10. Bristol的第18篇密码学
  11. Ubuntu16.04火狐浏览器问题汇总
  12. 让你终身受用的世界顶级思维
  13. 【BZOJ 1433】 [ZJOI2009]假期的宿舍
  14. 计算机右键菜单更换顺序,电脑图标排列顺序怎么自己改变了
  15. 凡事预则立不预则废,你有自己的应急基金吗?教你如何理财
  16. 利用Vultr主机安转宝塔Web面板搭建wordpress博客建站教程
  17. DocSys安装说明
  18. CSK跟踪算法简介及代码的解读
  19. EBS INV:客户料号
  20. AcrelCloud-1000变电所运维云平台在榆林市科技馆的应用

热门文章

  1. 物联网的七大通信协议
  2. STM32系列 STM32F4xx SPI Flash-读写操作
  3. 集成WEB服务器的蓝牙路由器及低功耗BLE WIFI 网络规划和实施
  4. python 使用mechanize进行web网页交互
  5. php 调用 C++
  6. 02. Docker安装记录卸载
  7. 高数 | 【概念剖析】多元函数的偏导数、方向导数、梯度以及微分之间的关系
  8. MATLAB中的bsxfun函数
  9. 论证select count(*)和select count(1)
  10. pgsql中实现按周统计,计算日期是周几