我希望iOS和Android设备的键盘在1秒后自动打开,当特定的textarea可见时。
我创建了一个directive
,但iOS上的键盘没有出现!关于iOS 10的键盘是否存在(新)问题?
我的textarea
看起来像是:
<textarea rows="20" autocorrect="off" ng-trim="false" focus-me></textarea>
该指令如下:
app.directive('focusMe', function($timeout) {
return {
link: function (scope, element, attrs) {
$timeout(function () {
element[0].focus();
if (window.cordova.plugins.Keyboard && ionic.Platform.isAndroid()) {
window.cordova.plugins.Keyboard.show(); //open keyboard manually on android
}
}, 1000);
}
};
});
在Android和浏览器中,一切都按预期工作,但在iOS上没有任何反应。
答案 0 :(得分:0)
我认为你错过了添加ionic.Platform.isIOS()
如何在你的指令内部进行条件化。
问候。
答案 1 :(得分:0)
您是否尝试在config.xml中添加此行?
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
答案 2 :(得分:0)
您不需要其他插件即可触发键盘。只需将.focus()设置为您的输入字段,但要增加一小段延迟。对于iOS,您还需要将config选项添加到config.xml
setTimeout(function(){
$('#editfield').focus();
},500);
添加到iOS的config.xml:
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
这适用于我的iOS和Android Apache Cordova应用程序。我今天编译的最新版本为2019年11月12日。