当点击 WkWebView 中 Alert 中的 Textfield 时显示键盘

Show keyboard when Textfield inside Alert in WkWebView is tapped

我在 WKWebView 中加载了一个游戏,这个 Alert 和 textField 在游戏结束后出现。我想在用户点击 textField 时显示键盘。但问题是没有显示此警报和文本字段的代码,否则我会管理文本字段成为FirstResponder()。

迫切需要一些帮助。非常感谢。

好的,我找到了解决方案。我在 WkwebView 的自定义 Alert/Popup 中有一个 textField,我希望 textField 为 becomeFirstResponder() 这样我就可以接受用户输入。

// 所以我实现了 WKUIDelegate..

#import <WebKit/WebKit.h>
@interface MyController : UIViewController<WKUIDelegate>

已分配代表..

- (void)viewDidLoad {
    [super viewDidLoad];
     _webkitView.UIDelegate = self;
}

//实现委托函数。

- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *result))completionHandler
{
    
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"BlockChaid Id, Email or Username"
                                                                   message:prompt
                                                            preferredStyle:UIAlertControllerStyleAlert];
    
    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
        textField.placeholder = prompt;
        textField.secureTextEntry = NO;
        textField.text = defaultText;
    }];
    
    [alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
        completionHandler(nil);
    }]];
    
    [alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        completionHandler([alert.textFields.firstObject text]);
    }]];
    
    [self presentViewController:alert animated:YES completion:nil];
}

成功构建后,这是输出。

  1. 我点击了 textField,javaScript 警报出现了。

  1. 这就是我想要实现的目标。

也许我没有很好地解释我的问题,但这就是我所要求的。谢谢:)