我们的应用中有一个页面有一个输入字段。当在IOS上进入该状态时,键盘会自动弹出。这不是我们想要的。这不会发生在Android版本上。
我尝试过各种各样的事情,但没有任何事情可以对它进行排序。我的最后一次尝试是在$cordovaKeyboard.close()
处理程序中的app.js运行块中调用$stateChangeSuccess
。唉,没什么。
任何指针都将非常感谢!
用代码术语来说并不多。违规输入:
<ion-item class="item-input-inset">
<label class="item-input-wrapper bg-light-grey-30 text-center">
<input type="text" class="text-center tracker" ng-model="values.exploreSearch" placeholder="Enter city, street, username or keyword"/>
</label>
</ion-item>
主app.js中$ionicPlatform.ready
块中的JS运行块:
$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams, error) {
if (window.cordova && $cordovaKeyboard.isVisible) {
$cordovaKeyboard.close();
}
});
我之前尝试在页面控制器中放置一个看起来像这样的块:
$ionicPlatform.ready(function () {
if (window.cordova && $cordovaKeyboard.isVisible) {
$cordovaKeyboard.close();
}
}]);
根据我的客户(因为我没有要测试的IOS设备),最后一个块在第一次加载页面时工作,但后来没有。如果您离开页面并返回,则会弹出键盘。
答案 0 :(得分:3)
我遇到了同样的问题,似乎与iOS浏览器发送点击事件的方式有关(更多信息请点击此处http://blog.ionic.io/hybrid-apps-and-the-curse-of-the-300ms-delay/)
我解决这个问题的方法是将我的表单隐藏在$ stateChangeStart上,然后在400ms之后显示表单。一个更好的方法是让一个透明的div覆盖所有东西,在$ ionicView.enter之后隐藏400ms。
rnb.run.analysis