实现方式(UIWebView)
首先需要web端设置input为focus聚焦状态,然后设置UIWebView的keyboardDisplayRequiresUserAction属性,默认为YES。如果设置为YES,用户必须明确的点击页面上的元素来显示键盘;如果设置为NO,则进入web页面会自动弹出键盘。
实现方式(WKWebView)
目前我们基本都用WKWebView来代替UIWebView,因为WKWebView与UIWebView相比较,拥有更快的加载速度和性能,更低的内存占用,更加细致的委托协议配置。但是WKWebView并没有UIWebView的keyboardDisplayRequiresUserAction属性,那就只能通过runtime处理了(同时也需要web端设置input为focus聚焦状态),如下:
一、导入runtime头文件
#import <objc/runtime.h>
二、在使用了WKWebView的Controller中添加方法
- (void)allowDisplayingKeyboardWithoutUserAction {
Class class = NSClassFromString(@"WKContentView");
NSOperatingSystemVersion iOS_11_3_0 = (NSOperatingSystemVersion){11, 3, 0};
NSOperatingSystemVersion iOS_12_2_0 = (NSOperatingSystemVers