在UIWebView中,有一個(gè)屬性keyboardDisplayRequiresUserAction蝴悉,設(shè)置為NO時(shí)就可以在頁面剛加載時(shí)直接彈出鍵盤税产;
在WKWebView中辐益,是沒有這個(gè)屬性的祭示,如果要實(shí)現(xiàn)類似的功能括堤,就必須替換WKWebView中相應(yīng)的方法,代碼如下:
```objective-c
static void (originalIMP)(id self, SEL _cmd, void?arg0, BOOL arg1, BOOL arg2, id arg3) = NULL;
void interceptIMP (id self, SEL _cmd, void* arg0, BOOL arg1, BOOL arg2, id arg3) {
originalIMP(self, _cmd, arg0, TRUE, arg2, arg3);
}
void setWkWebViewShowKeybord() {
Class cls = NSClassFromString(@"WKContentView");
SEL originalSelector = NSSelectorFromString(@"_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:");
Method originalMethod = class_getInstanceMethod(cls, originalSelector);
IMP impOvverride = (IMP) interceptIMP;
originalIMP = (void *)method_getImplementation(originalMethod);
method_setImplementation(originalMethod, impOvverride);
}
在iOS最新的11.3更新之后绍移,調(diào)用此方法會(huì)出現(xiàn)崩潰。經(jīng)過調(diào)試發(fā)現(xiàn)讥电,主要是因?yàn)檎{(diào)用的該 ? ? ? ?_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:?
私有方法名已經(jīng)變更為:
_startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:
所以上述方法更新一把(swift):
以此記錄蹂窖,希望可以幫助到你