坑爹的focus事件

搜索列表页面里面自动聚焦搜索框,键盘自动弹出,这个交互简直再正常不过了。给用户,尤其对于
iPhone 的 plus 系列用户来说,在操作上带来了很大的便利。但是在 iOS 的 UIWebview
十分坑爹,focus
事件不能在代码中触发。美其名曰防止用户被干扰,简直坑爹,导致这个需求在非原生的页面中根本无法实现,所以用户必须去点击一下搜索框才可以聚焦。

网上统一供了几种解决方案,我一一尝试过了,无效。看样子只有在 click
里面使用一个同步的方式才能触发 focus 事件,否则无效(在里面添加 timeout
异步触发也是失败)。

这时候我想起了 cordova Keyboard
插件,当我翻开他的源码时候,只见一位开发者绝望的写道:

1
2
3
- (void) show:(CDVInvokedUrlCommand*)command {
NSLog(@"Showing keyboard not supported in iOS due to platform limitations.");
}

呵呵!