[
https://issues.apache.org/jira/browse/CB-14090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xiao He updated CB-14090:
-------------------------
Description:
We using the Angular5.2.9 + Ionic3.2 + Ionic Native 4.5.3 + Cordova8.0 +
Cordova-ios 4.5.4 + Cordova-plugin-inappbrowser 2.0.3-dev to make an app to
access the following HTML in the app:
[The ScreenShot of the HTML |https://i.stack.imgur.com/n89gP.png]
testsoftkeyboard3.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script language="javascript">
var objInput1=null;
var objInput2=null;
function initLoad()
{ objInput1=document.getElementById("input1");
objInput2=document.getElementById("input2"); }
function onBlur(event)
{
if(event.target.value == 'abc')
{
event.target.style.backgroundColor="#ffffff";
return true;
}
//If we do not use setTimeout to perform alert here,
//the InAppBrowser will die without responding to any action in the
Pattern2
setTimeout(function () {
alert('Please input abc');
//objInput1.focus();
//objInput1.click();
}, 0);
event.target.style.backgroundColor = "#ff0000";
event.target.focus();
event.target.click();
return false;
}
</script>
</head>
<body onload="javascript:initLoad()">
input1:<input type="text" id="input1"
onblur="javascript:onBlur(event);"/>     -     
input2:<input type="text" id="input2"/>
<br/>
</body>
</html>
The above code is designed to achieve the following effects:
Step1. When the focus in the input1, the ipad automatically display soft
keyboard (It's should be iOS default function, focus on the input box will
automatically eject the soft keyboard)
[The ScreenShot of Step1|https://i.stack.imgur.com/kC96b.png]
Step2. When we enter content in input1, it will show alert warning if it found
that the input is not "abc" when the input1 lose focus (implemented in the
onblur event)
[The ScreenShot of Step2|https://i.stack.imgur.com/uEuSi.png]
Step3. At the same time , the background color of the input1 will be changed to
red, and let the focus return to the input1 and automatically display the soft
keyboard again
[The ScreenShot of Step3|https://i.stack.imgur.com/tHqNb.png]
Our problem is, at the Step2, we can make input1 lose focus in two ways(The
Pattern1 and The Pattern2):
Pattern1. Use mouse to click input2
Pattern2. Press the button in the lower right corner of the soft keyboard to
put the keyboard away
[The ScreenShot of the button|https://i.stack.imgur.com/NY1AN.png]
At present, when we operate by Pattern1, there is no problem, the Step3 can be
expected to show the effect.
But when we operate by Pattern2, when by calling the focus() method to make
input1 get the focus, soft keyboard will flash (appear, and immediately
disappear), tried a lot of ways to keep the soft keyboard always appear, we
already took 2, 3 days to try to solve the problem, are not done. Do not know
whether need to modify InAppBrowser's Objective-C code? Please tell us how to
solve the problem. Thank you very much.
was:
We using the Angular5.2.9 + Ionic3.2 + Ionic Native 4.5.3 + Cordova8.0 +
Cordova-ios 4.5.4 + Cordova-plugin-inappbrowser 2.0.3-dev to make an app to
access the following HTML in the app:
[The ScreenShot of the HTML |https://i.stack.imgur.com/n89gP.png]
testsoftkeyboard3.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script language="javascript">
var objInput1=null;
var objInput2=null;
function initLoad()
{
objInput1=document.getElementById("input1");
objInput2=document.getElementById("input2");
}
function onBlur(event)
{
if(event.target.value == 'abc')
{
event.target.style.backgroundColor="#ffffff";
return true;
}
//If we do not use setTimeout to perform alert here,
//the InAppBrowser will die without responding to any action in the Pattern2
setTimeout(function () {
alert('Please input abc');
//objInput1.focus();
//objInput1.click();
}, 0);
event.target.style.backgroundColor = "#ff0000";
event.target.focus();
event.target.click();
return false;
}
</script>
</head>
<body onload="javascript:initLoad()">
input1:<input type="text" id="input1"
onblur="javascript:onBlur(event);"/>     -     
input2:<input type="text" id="input2"/>
<br/>
</body>
</html>
The above code is designed to achieve the following effects:
Step1. When the focus in the input1, the ipad automatically display soft
keyboard (It's should be iOS default function, focus on the input box will
automatically eject the soft keyboard)
[The ScreenShot of Step1|https://i.stack.imgur.com/kC96b.png]
Step2. When we enter content in input1, it will show alert warning if it found
that the input is not "abc" when the input1 lose focus (implemented in the
onblur event)
[The ScreenShot of Step2|https://i.stack.imgur.com/uEuSi.png]
Step3. At the same time , the background color of the input1 will be changed to
red, and let the focus return to the input1 and automatically display the soft
keyboard again
[The ScreenShot of Step3|https://i.stack.imgur.com/tHqNb.png]
Our problem is, at the Step2, we can make input1 lose focus in two ways(The
Pattern1 and The Pattern2):
Pattern1. Use mouse to click input2
Pattern2. Press the button in the lower right corner of the soft keyboard to
put the keyboard away
[The ScreenShot of the button|https://i.stack.imgur.com/NY1AN.png]
At present, when we operate by Pattern1, there is no problem, the Step3 can be
expected to show the effect.
But when we operate by Pattern2, when by calling the focus() method to make
input1 get the focus, soft keyboard will flash (appear, and immediately
disappear), tried a lot of ways to keep the soft keyboard always appear, we
already took 2, 3 days to try to solve the problem, are not done. Do not know
whether need to modify InAppBrowser's Objective-C code? Please tell us how to
solve the problem. Thank you very much.
> iOS:App based on cordova-plugin-inappbrowser which is running on the iPad and
> the soft keyboard can't be ejected by focus () under certain conditions
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CB-14090
> URL: https://issues.apache.org/jira/browse/CB-14090
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-ios, cordova-plugin-inappbrowser
> Affects Versions: [email protected], [email protected]
> Environment: Angular v5.2.9
> Ionic v3.2
> Ionic Native v4.5.3
> Ionic Angular v3.9.2
> Cordova v8.0.0
> Cordova-ios v4.5.4
> Cordova-plugin-inappbrowser v2.0.3-dev
> macOS High Sierra v10.13.3
> Xcode v9.3(9E145)
> npm v5.6.0
> Node.js v8.11.1
>
> Reporter: Xiao He
> Assignee: Suraj Pindoria
> Priority: Major
> Labels: InAppBrowser, Softkeyboard, blur, flash, focus, iOS
>
> We using the Angular5.2.9 + Ionic3.2 + Ionic Native 4.5.3 + Cordova8.0 +
> Cordova-ios 4.5.4 + Cordova-plugin-inappbrowser 2.0.3-dev to make an app to
> access the following HTML in the app:
>
> [The ScreenShot of the HTML |https://i.stack.imgur.com/n89gP.png]
> testsoftkeyboard3.html:
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
> <meta http-equiv="Pragma" content="no-cache">
> <meta http-equiv="Cache-Control" content="no-cache">
> <meta http-equiv="Expires" content="0">
> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
> <script language="javascript">
> var objInput1=null;
> var objInput2=null;
> function initLoad()
> { objInput1=document.getElementById("input1");
> objInput2=document.getElementById("input2"); }
> function onBlur(event)
> {
> if(event.target.value == 'abc')
> {
> event.target.style.backgroundColor="#ffffff";
> return true;
> }
> //If we do not use setTimeout to perform alert here,
> //the InAppBrowser will die without responding to any action in the
> Pattern2
> setTimeout(function () {
> alert('Please input abc');
> //objInput1.focus();
> //objInput1.click();
> }, 0);
> event.target.style.backgroundColor = "#ff0000";
> event.target.focus();
> event.target.click();
> return false;
> }
> </script>
> </head>
> <body onload="javascript:initLoad()">
> input1:<input type="text" id="input1"
> onblur="javascript:onBlur(event);"/>     -
>     
> input2:<input type="text" id="input2"/>
> <br/>
> </body>
> </html>
> The above code is designed to achieve the following effects:
> Step1. When the focus in the input1, the ipad automatically display soft
> keyboard (It's should be iOS default function, focus on the input box will
> automatically eject the soft keyboard)
> [The ScreenShot of Step1|https://i.stack.imgur.com/kC96b.png]
> Step2. When we enter content in input1, it will show alert warning if it
> found that the input is not "abc" when the input1 lose focus (implemented in
> the onblur event)
> [The ScreenShot of Step2|https://i.stack.imgur.com/uEuSi.png]
> Step3. At the same time , the background color of the input1 will be changed
> to red, and let the focus return to the input1 and automatically display the
> soft keyboard again
> [The ScreenShot of Step3|https://i.stack.imgur.com/tHqNb.png]
> Our problem is, at the Step2, we can make input1 lose focus in two ways(The
> Pattern1 and The Pattern2):
> Pattern1. Use mouse to click input2
> Pattern2. Press the button in the lower right corner of the soft keyboard to
> put the keyboard away
> [The ScreenShot of the button|https://i.stack.imgur.com/NY1AN.png]
> At present, when we operate by Pattern1, there is no problem, the Step3 can
> be expected to show the effect.
> But when we operate by Pattern2, when by calling the focus() method to make
> input1 get the focus, soft keyboard will flash (appear, and immediately
> disappear), tried a lot of ways to keep the soft keyboard always appear, we
> already took 2, 3 days to try to solve the problem, are not done. Do not know
> whether need to modify InAppBrowser's Objective-C code? Please tell us how to
> solve the problem. Thank you very much.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]