【问题标题】:Prevent IOS autofocus first input when page opens ionic防止页面打开时IOS自动对焦第一次输入离子
【发布时间】:2015-06-08 10:00:26
【问题描述】:

我们的应用中有一个页面,它有一个输入字段。在 IOS 上进入该状态时,键盘会自动弹出。这不是所希望的。这在 Android 版本上不会发生。

我已经尝试了各种各样的东西,但没有任何东西可以对其进行排序。我最后一次尝试是在$stateChangeSuccess 处理程序内的app.js 运行块中调用$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运行块中$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 设备),最后一个块在页面第一次加载时工作,但随后没有工作。如果你离开页面,然后回来,键盘会弹出。

【问题讨论】:

  • 你不能在特定页面的控制器中添加$cordovaKeyboard.close();吗?
  • 或者使用ngFocus关闭键盘?见:docs.angularjs.org/api/ng/directive/ngFocus
  • @MarkVeenstra 这就是我在最终代码示例块中所做的,只是包装在 $ionicPlatform.ready 回调中。也许 ngFocus 的事情可能会起作用....
  • $ionicPlatform.ready 不是控制器。可以在加载视图之前触发平台就绪。
  • 我有一个发展。事实证明,键盘打开的原因是用户单击以进入状态(键盘弹出的位置)的 ui-sref 链接与新状态下的输入在屏幕上的位置相同。触摸事件似乎被转移到新状态,并再次注册,导致输入获得焦点,从而调出键盘。那么,现在的问题来了,为什么在IOS中跨越状态变化携带的tap事件呢?我可能不得不在新帖子中对此进行说明,因为这与我在原始帖子中的诊断不同。

标签: ios cordova keyboard ionic-framework ionic


【解决方案1】:

我也遇到了同样的问题,而且似乎与 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2018-08-27
    • 2019-08-15
    • 2020-07-30
    • 2022-07-06
    相关资源
    最近更新 更多