You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Alan Adesalu (JIRA)" <ji...@apache.org> on 2016/07/03 15:25:11 UTC
[jira] [Comment Edited] (CB-10376) autofocus doesn't work with
WKWebView engine plugin
[ https://issues.apache.org/jira/browse/CB-10376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15360569#comment-15360569 ]
Alan Adesalu edited comment on CB-10376 at 7/3/16 3:24 PM:
-----------------------------------------------------------
I have managed to fix this by implementing a variation of the same fix for the Telerik WKWebView.
Open CDVWKWebViewEngine.m and at the end of the updateSettings method (around line 140), add the following:
BOOL keyboardDisplay = !([settings cordovaBoolSettingForKey:@"KeyboardDisplayRequiresUserAction" defaultValue:NO]);
if (!keyboardDisplay) {
SEL sel = sel_getUid("_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:");
Class WKContentView = NSClassFromString(@"WKContentView");
Method method = class_getInstanceMethod(WKContentView, sel);
IMP originalImp = method_getImplementation(method);
IMP imp = imp_implementationWithBlock(^void(id me, void* arg0, BOOL arg1, BOOL arg2, id arg3) {
((void (*)(id, SEL, void*, BOOL, BOOL, id))originalImp)(me, sel, arg0, TRUE, arg2, arg3);
});
method_setImplementation(method, imp);
}
This will make the keyboard pop up again if you programatically focus on a input or textarea with KeyboardDisplayRequiresUserAction set to false.
As this is something which is preventing a large amount of people from considering this plugin, is this something we could have included in the next release?
was (Author: alan@sparkrevolutions.com):
I have managed to fix this by implementing a variation of the same fix for the Telerik WKWebView.
Open CDVWKWebViewEngine.m and at the end of the updateSettings method (around line 140), add the following:
BOOL keyboardDisplay = !([settings cordovaBoolSettingForKey:@"KeyboardDisplayDoesNotRequireUserAction" defaultValue:NO]);
if (!keyboardDisplay) {
SEL sel = sel_getUid("_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:");
Class WKContentView = NSClassFromString(@"WKContentView");
Method method = class_getInstanceMethod(WKContentView, sel);
IMP originalImp = method_getImplementation(method);
IMP imp = imp_implementationWithBlock(^void(id me, void* arg0, BOOL arg1, BOOL arg2, id arg3) {
((void (*)(id, SEL, void*, BOOL, BOOL, id))originalImp)(me, sel, arg0, TRUE, arg2, arg3);
});
method_setImplementation(method, imp);
}
This will make the keyboard pop up again if you programatically focus on a input or textarea with KeyboardDisplayRequiresUserAction set to false.
As this is something which is preventing a large amount of people from considering this plugin, is this something we could have included in the next release?
> autofocus doesn't work with WKWebView engine plugin
> ---------------------------------------------------
>
> Key: CB-10376
> URL: https://issues.apache.org/jira/browse/CB-10376
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin WKWebViewEngine
> Affects Versions: 5.4.1
> Environment: Tested on iPhone 6 plus and iPhone 5S both running iOS 9.2
> Reporter: David Douglas
> Priority: Minor
> Labels: iOS, triaged
>
> When using WKWebView engine the iOS Soft Keyboard fails to automatically open when the 'autofocus' attribute is set.
> How to recreate:
> 1. Add platform and keyboard plugin
> ```
> cordova platform add ios@4.0.1
> cordova plugin add cordova-plugin-keyboard@1.1.3 --save
> ```
> 2. Update iOS keyboard to enable focus commands in 'config.xml':
> ```
> <preference name="KeyboardDisplayRequiresUserAction" value="false" />
> ```
> 3. Add textarea to test with autofocus attribute.
> ```
> <textarea placeholder="Edit text" autofocus></textarea>
> ```
> (Note: Before adding the WKWebView engine plugin the UIWebView will automatically open the Soft Keyboard.)
> 4. Add the WKWebView engine plugin
> ```
> cordova plugin add cordova-plugin-wkwebview-engine@1.0.1 --save
> ```
> What happens:
> Nothing.
> What should happen:
> The soft keyboard should open automatically (the same a UIWebView)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org