1. 小程序开发指南(入门必读):https://developers.weixin.qq.com/ebook?action=get_post_info&docid=000ace6c9603786b008636f2e56c0a
2. 完整开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework
3. 小程序全局配置:https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html
getApp(),返回全局唯一的应用实例。而getCurrentPages() 是获取当前页面栈的数组。数组中第一个元素为首页,最后一个元素为当前页面。不同于Vue中的data配置属性,Page对象的data属性不是体现到Page对象上面。
Page.setData(),逻辑层向视图层发送页面数据,视图层开始重新渲染,视图层向逻辑层反馈用户事件。在整个Page({})里面,this关键字指代Page({})整个对象;
需要在 Page 中定义了分享回调才会显示小程序的分享按钮。开发者自身打开小程序会显示控制台。
小程序的渲染层和逻辑层是两个线程,相互的任何操作都是异步的。组件上的data属性将会在事件发生时被传递。
基础库 2.10.2 版本起,异步 API 支持 callback & promise 两种调用方式。当接口参数 Object 对象中不包含 success/fail/complete 时将默认返回 promise,否则仍按回调方式执行,无返回值。
// callback 形式调用
wx.chooseImage({
success(res) {
console.log('res:', res)
}
})
// promise 形式调用
wx.chooseImage().then(res => console.log('res: ', res))可以在该文件中使用目标文件定义的 template,在 index.wxml 中引用了 item.wxml,就可以使用 item模板,需要注意的是 import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件中 import 的 template,简言之就是 import 不具有递归的特性。
<import src="item.wxml"/>可以将目标文件中除了 <template/> <wxs/> 外的整个代码引入,相当于是拷贝到 include 位置。
<include src="header.wxml"/>所有wxml 标签都支持的属性称之为共同属性
https://developers.weixin.qq.com/ebook?action=get_post_info&docid=000ee2c29d4f805b0086a37a254c0a

共同属性
WXSS引用:在小程序中,我们依然可以实现样式的引用,样式引用是这样写
@import './test_0.wxss'由于WXSS最终会被编译打包到目标文件中,用户只需要下载一次,在使用过程中不会因为样式的引用而产生多余的文件请求。

选择器
wx.navigateTo、wx.navigateBack、wx.redirectTo、wx.navigateToMiniProgram、wx.reLaunch、wx.switchTab
初始渲染完毕后,视图层可以在开发者调用setData后执行界面更新。在数据传输时,逻辑层会执行一次JSON.stringify来去除掉setData数据中不可传输的部分,之后将数据发送给视图层。同时,逻辑层还会将setData所设置的数据字段与data合并,使开发者可以用this.data读取到变更后的数据。
因此,为了提升数据更新的性能,开发者在执行setData调用时,最好遵循以下原则:
初始渲染完毕后,视图层可以多次应用setData的数据。每次应用setData数据时,都会执行重渲染来更新界面。
初始渲染中得到的data和当前节点树会保留下来用于重渲染。每次重渲染时,将data和setData数据套用在WXML片段上,得到一个新节点树。然后将新节点树与当前节点树进行比较,这样可以得到哪些节点的哪些属性需要更新、哪些节点需要添加或移除。最后,将setData数据合并到data中,并用新节点树替换旧节点树,用于下一次重渲染。
module 属性是当前 <wxs> 标签的模块名。在单个 wxml 文件内,建议其值唯一。有重复模块名则按照先后顺序覆盖(后者覆盖前者)。不同文件之间的 wxs 模块名不会相互覆盖。
wxs模块只能在定义模块的 WXML 文件中被访问到。使用 <include> 或 <import> 时,<wxs> 模块不会被引入到对应的 WXML 文件中。
<wxs src="./../logic.wxs" module="logic" /><wxs module="foo">
var some_msg = "hello world";
module.exports = {
msg : some_msg,
}
</wxs>
<view> {{foo.msg}} </view>wx.showToast({
title: '成功',
icon: 'success',
duration: 2000
})wx.showModal({
title: '提示',
content: '这是一个模态弹窗',
success (res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})//显示加载框
wx.showLoading({
title: '加载中',
})
//关闭加载框
setTimeout(function () {
wx.hideLoading()
}, 2000)wx.showActionSheet({
itemList: ['A', 'B', 'C'],
success (res) {
console.log(res.tapIndex)
},
fail (res) {
console.log(res.errMsg)
}
})wx.enableAlertBeforeUnload(Object object)/wx.disableAlertBeforeUnload(Object object)
wx.showNavigationBarLoading({
success:function(){},
fail:function(){},
complete:function(){}
})wx.hideNavigationBarLoading({
success:function(){},
fail:function(){},
complete:function(){}
})wx.setNavigationBarTitle({
title: '当前页面'
})wx.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#ff0000',
animation: {
duration: 400,
timingFunc: 'easeIn'
}
})微信7.0.7版本起,当用户打开的小程序最底层页面是非首页时,默认展示“返回首页”按钮,开发者可在页面 onShow 中调用 hideHomeButton 进行隐藏。
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html
首先通过composer安装sdk:https://github.com/wechatpay-apiv3/wechatpay-php
jssdk api,通过微信支付平台证书申请工具申请API证书;复制请求串-->安全验证-->复制证书串-->证书生成成;
官方文档:https://wechatpay-api.gitbook.io/wechatpay-api-v3/ren-zheng.
商户证书序列号:账户中心】->【账户设置】->【API安全】能看到的证书序列号,是「商户证书」序列号;
生成api V3 的key,复制商户号;生成微信平日证书;
在启用新的平台证书前,微信支付会提前24小时把新证书加入到平台证书列表中;
file://证书路径都要带上协议名称;
商户号:1617---713
商户证书序列号:5A74783920926------------39B18BBFEA3D
api V3 Key:q4616------------------06735h
微信支付平台证书:vendor/bin/CertificateDownloader.php -k q4616250*********79106735h -m 161****713 -f runtime/key/key.pem -s
5A74783920926**********839B18BBFEA3D -o runtime/key小程序获取用户信息:https://developers.weixin.qq.com/community/develop/doc/000c2424654c40bd9c960e71e5b009
公众号事件推送:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html
公众号模板消息:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
Unicode机制说明:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
卡券-小程序打通:https://developers.weixin.qq.com/doc/offiaccount/Cards_and_Offer/Coupons-Mini_Program_Start_Up.html
微信卡券接口:https://developers.weixin.qq.com/doc/offiaccount/Cards_and_Offer/WeChat_Coupon_Interface.html
OpenId 是一个用户对于一个小程序/公众号的标识,开发者可以通过这个标识识别出用户。
UnionId 是一个用户对于同主体微信小程序/公众号/APP的标识,开发者只需要在微信开放平台下绑定相同账号的主体。就可通过UnionId,实现多个小程序、公众号、甚至APP 之间的数据互通。
同一个用户的这两个 ID 对于同一个小程序来说是永久不变的,就算用户删了小程序,下次用户进入小程序,开发者依旧可以通过后台的记录标识出来。
待续...