IOS input auto focus 解決計劃探討
開發過hybird的人都曉得,在IOS手機下面處於安全策略斟酌,不允許JS自動獵取input輸入框的核心並調出假造鍵盤,但是從產物角度來看,每每如許的場景有許多,所以也催生出林林總總的hack手腕,下面引見一種自認為是挺圓滿的計劃供人人參考:
營業場景形貌:
- A頁面點擊搜刮按鈕,跳到B頁面,B頁面的搜刮框自動獵取核心而且彈出假造鍵盤。
計劃設想:
基於vue(其他框架相似)設想以下:
- A、B頁面都是差別的路由頁面;
- 在A、B頁面大眾部份增加一個大眾input隱蔽輸入框並設置唯一id;
- 將A頁面的搜刮按鈕包一層label節點,並設置for屬性指向大眾input的id,並設置click事宜跳轉到B頁面;
- 在B頁面的beforeMount中增加監聽大眾input的input事宜,並在監聽的回調函數內里去賦值給B頁面真正用於顯現的input框;
- 如許就完畢了,當我們點擊A頁面的搜刮按鈕會觸發label for特徵顯現假造彈窗,並跳轉到B頁面,然後直接按假造按鍵即可完成大眾隱蔽輸入框和真正輸入框之間的值的同步賦值;
長處:
- 以起碼的代碼完成hack
- 以起碼的修改完成hack
瑕玷:
- 唯一的瑕玷是不能讓B頁面的輸入框一開始的時刻有一個光標,這個發起能夠寫一個通用的input組件,經由過程CSS hack體式格局模仿光標顯現
結論:
OK,到這裏就完畢了計劃設想了,願望這個思緒能夠給人人一個參考。