UIWebView和WKWebView的键盘"完成"按钮按下事件

Max*_*s S 5 uiwebview ios wkwebview

使用UITextView时有相应的资源.如何注册Done按键按键事件?当用户将表单聚焦在webview中时,键盘会显示.

Duc*_*cky 6

主要思想是使用Javascript注入来实现您想要的.您可以尝试捕获所调用的DOM事件onfocusout(有关详细信息,请参阅http://www.w3schools.com/jsref/event_onfocusout.asp).

以下是如何为UIWebView执行此操作的示例.WKWebView可以以类似的方式处理.

在第一次加载webview后,调用此方法注入一些Javascript代码

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('youTextFieldID').addEventListener('onfocusout', function () {"
                                                @"var frame = document.createElement('iframe');"
                                                @"frame.src = 'doneEditing://';"
                                                @"document.body.appendChild(frame);"
                                                @"setTimeout(function () { document.body.removeChild(frame); }, 0);"
                                                @"}, false);"];
Run Code Online (Sandbox Code Playgroud)

像这样写你的UIWebView委托方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
        if ([request.URL.scheme isEqualToString:@"doneEditing"]) {
            // Call you event handler here
            [self doneButtonTouchEventHandler]
            return NO;
        }
        return YES;
}
Run Code Online (Sandbox Code Playgroud)

祝好运