-
new Date('yyyy-MM-dd HH:mm:ss')
这种格式在部分系统/手机型号里面,是无法解析出日期对象的!需要替换'-'为'/'
// "2022-01-01" to Date() 对象
function dayString2Date(string) {
var date = new Date(string.replace(/-/g, "/"));
return date
}
1、开放能力:
open-type='getPhoneNumber' bindgetphonenumber="bindGetPhoneNumber"
通过微信开放组件获取手机号码,
报错‘该appid没有权限’
原因:小程序没有进行‘微信认证’。可在小程序公众号管理后台,进入设置页面,找到‘微信认证’,然后点详情去认证。认证需要¥300;(目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。)
2、<scroll-view>内部用以下代码没用!!其子视图DirectSon必须要占100%宽度才能居中。DirectSon内部视图可用如下代码居中
display: flex;
flex-direction: column;
align-items: center;
3、不要限制<scroll-view>的高度!!!其height属性将限制内部子视图可见部分!
4、移动端new Date(dateString) 返回undefined,
解决办法:
let date = new Date(time.replace(/-/g, "/"))
5、设置url白名单,可能要超过6小时才生效。。。
6、页面间传递xml标签
解决办法:
string先转化为二进制,再还原
//将字符串转换成二进制形式,中间用空格隔开
function strToBinary(str){
var result = [];
var list = str.split("");
for(var i=0;i<list.length;i++){
if(i != 0){
result.push(" ");
}
var item = list[i];
var binaryStr = item.charCodeAt().toString(2);
result.push(binartStr);
}
return result.join("");
}
console.log(strToBinary("我们")); //110001000010001 100111011101100
console.log(strToBinary("@%$+")); //1000000 100101 100100 101011
//将二进制字符串转换成Unicode字符串
function binaryToStr(str){
var result = [];
var list = str.split(" ");
for(var i=0;i<list.length;i++){
var item = list[i];
var asciiCode = parseInt(item,2);
var charValue = String.fromCharCode(asciiCode);
result.push(charValue);
}
return result.join("");
}
console.log(binaryToStr("110001000010001 100111011101100")); //我们
console.log(binaryToStr("1000000 100101 100100 101011")); //@%$+
7、图片上添加控件(如拍照上传,右上角显示删除按钮,右下角显示上传状态。)
wxml:
<view class='imageView'>
<image class='image></image>
<image class='deleteBtn' src='----/deleteIcon.png' wx:if='{{hasImage}}'>
<image class='stateIcon' src='{{stateIcon}}>
</view>
css:
.imageView {
position: relative;
width: 60pt;
height: 55pt;
}
.image {
position: absolute;
width: 60pt;
height: 55pt;
top: 0;
left: 0;
}
.deleteBtn {
width: 20pt;
height: 20pt;
position: absolute;
top: 3pt;
right: 3pt;
}
.stateIcon {
width: 15pt;
height: 15pt;
position: absolute;
bottom: 3pt;
right: 3pt;
}
8、padding(无效/没有按照预期生效)的问题
比如,
<view class='pageView'>
<view class='header'>
<text>我是左边文本</text>
<text>我是又边文本</text>
</view>
</view>
.pageView {
width: 100vmin;
}
.header {
width: 100%;
height: 30pt;
display: flex;
justify-content: space-between;
padding-left: 10pt;
padding-right: 10pt;
}
我们预期是2边各缩进10pt,
但实际上,它是这样的,
我明明是要2边都缩进,为什么右边确没有缩进?反而还超出了屏幕界限?就算设置padding-right: -10pt;也还是错上加错!
正确的做法是,.header内加上一句
.header {
......
box-sizing: border-box;
}
就行了。默认box-sizing是content-box,padding和margin都是往外扩张!加上border-box后,box大小固定后,padding是向内缩进的!这才是我们想要的结果!
9、本月(201911)调试,在<map>标签内添加控件用的是cover-view,cover-image,但是IDE提示不需要用这2个控件了,可以直接用view,image代替。然后替换过来,果然OK哇!上线后,很多用户打电话过来说页面错了。。。N,M,M-P,没成熟的东西在IDE一直提示叫我去用!最后只能又用回cover-view,cover-image。
10、维护别人写的项目,wepy中的@tap方法带了参数,如@tap='commit({{value1,value2}})',结果每天一大波客服电话说这个页面显示空白,那个页面显示空白。但是我们测试确实从来没出现过空白。我猜测是wepy里面这种写法有bug,在部分设备上会导致页面渲染失败。于是替换成了不带参数写法,参数仍然用小程序传统方式传值。改完之后,就没有人再打电话说页面空白了。wepy坑死你Dady啊!
11、父视图有圆角border-radius,被子视图覆盖掉了。
解决:
.fatherView {
....
border-radius: 4pt;
overflow: auto;
}
12、view/image被text压缩宽度
文字多的时候左侧图标就被挤扁了
我们期望是这样的:
这个涉及到一些约束条件优先级问题,解决的办法是给左侧图标设置min-width属性:
.icon {
width: 20pt;
height: 20pt;
/* 必须写min-width,否则当文字超长时,会把图片挤扁! */
min-width: 20pt;
min-height: 20pt;
margin-left: 8pt;
margin-right: 8pt;
}
13、PS修改保存图片后图片大小翻了几倍甚至几十倍!(小程序大小不能超过2M,图片过大是不被允许的!)
菜单栏找到:文件——存储为WEB所用格式——预设那里调整为:PNG-8 128仿色,然后点击“存储”,这个方法可以缩小图片占空间的大小,但有个大问题--半透明色会变不透明。最优办法使用第三方压缩软件,如PNGoo.exe