杂谈小程序
我不知道的小程序能力
open-data
用于展示微信开放的数据,比如头像、昵称等,注意只符合展示的场景
open-data[1]
navigateToMiniProgramAppIdLis
如果我们的需求需要跳转到其他的小程序的 APPID,则需要配置该选项。
注意:最多只能填写 10 条
微信小程序 IPhoneX 吸底兼容问题
问题:如果跟普通需求一样处理,就会和下面的 Home Indicator 重叠
需要判断设备,使用 wx.getSystemInfoSync(),获取设备信息,判断是否为 iPhoneX,设置一个全局变量(APP 实例下面)进行存储。根据是否为 iPhone X设置不同的样式即可。
小程序中吸底按钮适配 iPhone X 方案[2]
微信小程序中打开手机 APP 的地图
/**
* 使用微信内置地图查看位置,如果不传经纬度就获取当前的位置
* @param name 位置名
* @param address 地址的详细说明
* @param lati 纬度
* @param longi 经度
*/
export function openWxMapLocation (name, address, lati, longi) {
if (lati && longi) {
wx.openLocation({
name,
address,
latitude: lati,
longitude: longi,
scale: 18
})
return
}
wx.getLocation({
type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
success (res) {
const latitude = lati || res.latitude
const longitude = longi || res.longitude
wx.openLocation({
name,
address,
latitude,
longitude,
scale: 18
})
}
})
}
小技巧
•可以在开发者工具的console面板输入 showRequestInfo() 查看相关信息•wx.login获取的code凭证的有效时间是5分钟
深入小程序
双线程模型
天生延迟
其它
parseInt 问题
parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix 为介于2-36之间的数
parseInt 的第一个入参要求为 String 类型,当你的值太大,变成科学技术法的时候,就会存在以下的问题。因为数值过大,就会变成科学技术法的形式,调用 toString() 方法的时候就会只返回值不正确
精灵图的使用
原理:background-image 设置图片,background-repeated 设置不重复,background-position (重点)设置图片的位置以显示哪张图片
.btn-members.jump {
background-image: url('6fe21e1d783e8b0.png');
}
.btn-members.free, .btn-members.jump {
width: 580rpx;
height: 108rpx;
background-position: 0 0;
background-size: 580rpx 216rpx;
background-repeat: no-repeat;
}
.btn-members.free.down, .btn-members.jump.down {
/* 精灵图定位 */
background-position: 0 -108rpx;
}
移动端 line-height 问题
移动端(安卓)不能设置 height 和 line-height 一样高,小数点计算会产生误差。
解决:line-height 一般设置大一点
References
[1]
open-data: https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html
[2]
小程序中吸底按钮适配 iPhone X 方案: https://juejin.im/post/5a1d396551882546d71f157b
- 《iOS APP 性能检测》
- iOS 11 安全区域适配总结
- Linux下巧用chattr、watch命令的实例
- 【特斯拉组件】iOS高性能PageController
- SUSE Linux系统在线安装软件命令zypper参数详解
- Linux下通过rdesktop连接Windows远程桌面
- 微信iOS收款到账语音提醒开发总结
- React Native按需加载 手Q狼人杀探索之路
- nginx日志切割及7天前的历史日志删除脚本
- 《ios爆内存问题解决方案-OOMDetector组件》
- Linux/SUSE安装svn客户端的问题记录
- 《广研Android卡顿监控系统》
- 替换WordPress默认搜索为百度站内搜索(知更鸟主题可照搬)
- 《Android插件化技术——原理篇》
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- springboot开发之修改员工
- LeetCode | 703.数据流中的第K大元素
- springboot开发之配置自定义的错误界面和错误信息
- springboot开发之删除员工
- LeetCode | 1.两数之和
- springboot开发之配置嵌入式Servlet容器两种方式
- jvaa之初始化块
- java之匿名内部类
- springboot配置之获取配置文件中属性的第二种方法(@Value)不同于@ConfigurationProperties
- mybatis动态sql之内置参数_parameter和_databaseId
- Redis | Redis 字符串相关命令
- java之抽象类
- springboot配置之yaml
- properties和yaml配置文件
- java之模板方法设计模式