ionantha

页面底部输入框聚焦时吸底软键盘方案

0、参考布局 可能存在的问题 * 输入框未跟随软键盘弹起 * 输入框被顶起超过软键盘的高度 * 输入框被系统手势按钮遮挡 * 输入框没有被键盘挡住,但收起键盘后页面不会回落 * ios safari标签栏位于底部时 100vh并不是真实的高度,导致输入框被标签栏遮挡 * 输入框被顶起时,页面顶部被顶到了可视区域外 解决方案 1、Android 监听resize事件 在Android中,软键盘弹起会导致页面高度变化,压缩页面,因此可以通过监听window的resize事件,并实时修改容器高度来保证输入框位于软键盘之上 window.addEventListener('resize', this.convertStyle); convertStyle() { this.$refs.container.style.setProperty('window.innerHeight', `${height}px`); }, 2、IOS 通过VisualViewport监听resize事件 在IOS中,软键盘的弹起并不会导致页面高
4 min read

使用 electron 为应用制造跨平台APP外壳

一、electron 本质就是个浏览器 二、本地化VUE项目 Vue CLI Plugin Electron Builder 1、安装 // node需要 >= 14 vue add electron-builder 2、结构 background.ts 为 主进程 需要在 package.json中配置 3、运行 二、远程加载URL 1、创建、安装 // 初始化项目 npm init // 在当前目录安装最新 npm i -D electron // 全局安装最新 cnpm install electron -g * 简单使用 { "name": "electron_demo"
3 min read

lerna

Lerna 是一个管理多个 npm 模块的工具,是 Babel 自己用来维护自己的 Monorepo 并开源出的一个项目。优化维护多包的工作流,解决多个包互相依赖,且发布需要手动维护多个包的问题。 1、安装 推荐全局安装,因为会经常用到 lerna 命令 npm i -g lerna 2、初始化项目 2.1 创建 lerna init 2.2 修改配置 将node_modules提出至最顶层集中管理,避免共同依赖的重复安装 learn.json { "packages": [ "packages/*" ], "useWorkspaces": true, "npmClient": "yarn", // 默认使用yarn,有利于扁平化依赖管理 "version": "0.0.0" } package.
6 min read

mac pip默认使用pip3

pip是常用的python包管理工具,类似于java的maven。用python的同学,都离不开pip。 * 在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要手动安装。 sudo easy_install pip //即可安装 * 值得注意的是:这样将安装在系统自带的python2.7的路径下,而我们要的开发环境却是python3,这样安装的包,python3中找不到 解决办法:用下面的命令安装 curl https://bootstrap.pypa.io/get-pip.py | python3 * 查看版本 pip --version //pip 18.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7) 如上可以看到 查看版本时,
1 min read

AES加密

AES 属于对称加密算法 三要素: * 秘钥 * 填充 * 模式 秘钥 对称加密之所以对称,是因为这类算法对明文的加密和解密使用的是同一个秘钥 AES 支持三种长度的秘钥: * 128位 128的性能最好 * 192位 * 256位 256的安全性最高,加密轮数更多。 这三种不同长度的秘钥,在底层的加密过程中,处理的加密轮数不同。 填充 AES加密分组的特性:AES加密并不是将明文一股脑加密成密文,而是先拆分成一个个的独立的明文块,每个明文快块128bit。 假设一段明文块长度是192bit,按照每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit,此时就需要对不足128bit的明文块进行填充。 填充的 种类: * NoPadding 不做任何填充,要求明文必须是128bit的整数倍 * PKCS7Padding 用0填充,对于末尾为0的,容易误判,从而解密出错,并不推荐 * ZeroPadding(当明文块少于16个字节,少多少个字节,就用对应数字来填充。例如,少5个,后面就是5个5,少6个,就是6个
3 min read

(Untitled)

工作后再来看浏览器输入URL后发生了什么? 从毕业到工作已经过去了一年半的时间,在春招中第一个被问到的问题就是浏览器输入URL后发生了什么,于是便把过程中发生了什么和工作中可能遇到的知识点与一些基础的计算机知识做了一下串联,如果有大佬看到有什么错误与欠缺,欢迎指正与补充 1、域名寻址阶段 过程 * 浏览器先查看本地硬盘host对应的域名规则,如果有直接使用该IP(浏览器缓存、操作系统缓存、本地host文件、路由器缓存) * 浏览器发送DNS请求到本地DNS服务器,如电信、网通 ( ISP DNS缓存) * 本地DNS服务器首先查询缓存记录,该过程为递归查询,如果有则直接返回,如果没有,则查询DNS根服务器 * DNS根服务器如果没有查到对应的域名与IP关系,则返回本地DNS服务器,使用域服务器继续查询,该过程为迭代查询 * www.xyz.abc.com 从 .com 域服务器一直查到 xyz.abc.com 域服务器 (顶级DNS服务器/根DNS服务器) 问题 1、什么是DNS 本质是一个IP与域名关系的电话本 DNS(Domain Name Syst
20 min read

MariaDB基础配置

本记录基于CentOS 7 root用户下 从 CentOS 7 开始,CentOS 使用 MariaDB 代替了 MySQL 数据库,MariaDB 系 MySQL 的一个分支,使用方法和 MySQL 基本一致,主要由开源社区维护,采用 GPL 授权许可。开发此分支的主要原因之一:Orcale 公司收购了 MySQL,所以 MySQL 有闭源的可能,因此社区采用了开源的 MariaDB 来规避此风险。 安装 yum install mariadb mariadb-server #询问是否要安装,输入Y即可自动安装,直到安装完成 systemctl enable mariadb.service #设置开机启动 常用命令 systemctl start/
1 min read

centos系统添加/删除用户和用户组

建用户 # 新建phpq用户 adduser phpq # 给phpq用户设置密码 passwd phpq 建工作组 # 新建test工作组 groupadd test 新建用户同时增加工作组 # 新建phpq用户并增加到test工作组 useradd -g test phpq 给已有的用户增加工作组 usermod -G groupname username # or gpasswd -a username groupname 临时关闭 在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上就可以了。想恢复该用户,去掉即可。 或者使用如下命令关闭用户账号: passwd peter –l # 重新释放: passwd peter –u 永久性删除用户账号 userdel peter groupdel peter usermod –G
1 min read

申请免费SSL/HTTPS通配符证书

申请单个域名证书 certbot: https://certbot.eff.org/ 安装命令行工具及申请 选择对应的软件和系统版本 # 安装依赖 sudo apt-get install certbot python-certbot-nginx # 自动设置 sudo certbot --nginx # or 手动设置 sudo certbot certonly --nginx 设置自动续签 # 通用 sudo certbot renew # 强制续签 sudo certbot renew --dry-run 申请通配符域名证书 阿里云等国内域名商购买域名 申请证书 centOS需要提前安装依赖 pip uninstall requests pip uninstall urllib3 yum remove python-urllib3 yum remove python-requests
2 min read

Subscribe to ionantha

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe