作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们的应用程序中有一个页面只有一个输入字段。在IOS上进入那个状态时,键盘会自动弹出。这不是我们想要的。这不会发生在 Android 版本上。
我已经尝试了各种各样的事情,但没有任何解决办法。我最后一次尝试是在 $stateChangeSuccess
处理程序内的 app.js 运行 block 中调用 $cordovaKeyboard.close()
。唉,没什么。
如有任何指点,我们将不胜感激!
没有太多的代码术语。违规输入:
<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 运行 block 中 $ionicPlatform.ready
block 中的 JS:
$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams, error) {
if (window.cordova && $cordovaKeyboard.isVisible) {
$cordovaKeyboard.close();
}
});
我之前尝试在页面 Controller 中放置一个 block ,如下所示:
$ionicPlatform.ready(function () {
if (window.cordova && $cordovaKeyboard.isVisible) {
$cordovaKeyboard.close();
}
}]);
根据我的客户(因为我没有要测试的 IOS 设备),最后一个 block 在第一次加载页面时有效,但随后就无效了。如果您离开页面并返回,键盘会弹出。
最佳答案
我有同样的问题,这似乎与 iOS 浏览器发送点击事件的方式有关(更多信息在这里:http://blog.ionic.io/hybrid-apps-and-the-curse-of-the-300ms-delay/)
我解决这个问题的方法是在 $stateChangeStart 上隐藏我的表单,然后在 400 毫秒后显示该表单。一个稍微好一点的方法是用一个透明的 div 覆盖所有内容,在 $ionicView.enter 之后隐藏 400 毫秒。
<div style="position: absolute; top: 0px; bottom: 0px; left: 0px; right: 0px; z-index: 1000;" ng-hide="showFields" class="ng-hide"></div>
关于ios - 当页面打开 ionic 时防止 IOS 自动对焦第一次输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706214/
我是一名优秀的程序员,十分优秀!