ios软键盘弹出痛点解决和时间字符串转时间戳,部分浏览器不兼容问题

127 阅读1分钟

1.时间字符串转时间戳,浏览器不兼容问题

例如:let str = '2020-01-02'; let timeStamp = new Date(str);

 一般上面这样写,都是可以转换成功的,由于是一个应用的移动端环境,不兼容这样的写法。
 
 改成:let timeStamp = new Date(str.split('-')[0],str.split('-')[1]+1,str.split('-')[2])
 
 有个细节容易忘记,这样写,月份需要+1,最后返回的才是正确的。

2.ios文本输入框聚焦,软键盘自动弹出的问题

ios系统不支持聚焦后软键盘自动弹出,安卓可以。

直接给文本输入框操作是不行的,这个文本输入框需要一个触发的前提。比如点击一个按钮后,给这个文本框聚焦,但如果没有特殊处理,这样直接操作,ios是不会弹出软键盘的。

最后解决这个问题思路是这样的,给点击事件里加下面的代码

this.$nextTick(() => {
    this.$refs.reblish.focus()
})
setTimeout(() => {
    this.$refs.reblish.focus()
}, 500)

之前看到过一个博客,说上面这两个任何一个都可以,我这边是要两个一起才行。

有时候可能要跳转页面什么的,可能会获取不到ref,可以用id来替代。尽量在一个dom页面里才行,如果不行,就加一些处理。