2019-11-14 07:46:41
19
0
0
## **canvas画图ctx.drawImage()图片在真机上不显示**
- 网络图片记得使用`wx.drawImage`或者`wx.downloadFile`下载下来使用临时路径
- **如果本地图片和网络图片下载下来了还是不能显示, 查看`
2019-11-14 07:46:41
22
0
0
2019-11-14 07:46:41
8
0
0
## **注意: 小程序需要先上线才能生成二维码**
## **另参考[官方文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542)**
## **另参考[扫普通链接二维码打开体验版小程序](https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#%E9%85%8D%E7%BD%AE%E6%B5%81%E7%A8%8B)**
## 1. **获取[access_token](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183)**
### 接口调用请求说明
```
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
```
### 参数说明
参数|是否必须|说明
:-: | :-: | :-:
grant_type|`是`|获取`access_token`填写`client_credential`
appid|`是`|第三方用户唯一凭证
secret|`是`|第三方用户唯一凭证密钥,即`appsecret`
以下是Oauth支持的5类 grant_type 及说明
```
authorization_code 授权码模式(即先登录获取code,再获取token)
password 密码模式(将用户名,密码传过去,直接获取token)
client_credentials 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)
implicit 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
refresh_token 刷新access_token
```
### 返回说明
```
{"access_token":"ACCESS_TOKEN","ex
2019-11-14 07:46:41
8
0
0
## 1. App上挂globalData
### App.js
App({
globalData: {
name: '前端学者',
// ...other globalData
},
// ...other globalData
});
// 取值 var n
2019-11-14 07:46:41
29
0
0
## 小程序运行机制 [文档](https://developers.weixin.qq.com/miniprogram/dev/framework/operating-mechanism.html)
小程序启动
小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。
热启动:假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,
2019-11-14 07:46:39
11
0
0
验证只能输入大于0的正整数或者两位小数
/^[1-9]+\d*(\.\d{1,2})?$|^0\.([1-9]|\d[1-9])$/.test(value)
替换wei输入大于0的正整数或者两位小数
"11".replace(/^([0-9]+\d*(\.\d{1,2})?).*$/, "$1")
验证只能是正负整数或者0
/^(0|[1-9][0-9]*|-[1-9][0-9]*)$/
String(value).replace(/^[^1-9]|[^0-9]*$/g, "")
连续三位及以上为重复字
/(\w)*(\w)\2{2}(\w)*/g
二代身份证号码
/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
座机号码(包括分机号码, 如: 0799-7276888-7)/手机号码
/^((0\d{2,3}-\d{7,8}(-\d{1})?)|(1[3456789]\d{9}))$/
纳税人识别号
/[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/
银行账号
/^([1-9]{1})(\d{14}|\d{18})$/
手机号码
/^[1](([3|5|8][\d])|([4][4,5,6,7,8,9])|([6][2,5,6,7])|([7][^9])|([9][1,8,9]))[\d]{8}$/
不能连续字符(如123、abc)连续3位或3位以上
export function LxStr(str) {
var arr = str.split('');
var flag = true;
for (var i = 1; i < a
2019-11-14 07:46:38
11
0
0
> 参考: https://cloud.tencent.com/developer/article/1476013
2019-11-14 07:46:38
10
0
0
## 生成xlsx文件
#### createXLSX.js
```
/**
* create time: 18/6/2019
* author: Peng
*/
import XLSX from "xlsx"
import { message } from "antd"
/**
*
* @param {Array} msgArr
* 例子:
* 表头
* co
2019-11-14 07:46:38
15
0
0
> 参考: https://lbs.amap.com/api/javascript-api/reference-amap-ui/mass-data/pathsimplifier
2019-11-14 07:46:36
15
0
0
## 特点
1. 接口好比一个名字, 用来描述一个类或方法里的要求
2. 只要传入的参数有一个满足接口的必要条件的话, 就是被允许的, 参数属性的顺序和检查器检验没关系
例如:
```
interface LabelledValue {
label: string;
}
function printLabel(labelledObj: LabelledValue) {
console
9/18