Ionic2 离子输入在 iOS 模拟器上不起作用

Posted

技术标签:

【中文标题】Ionic2 离子输入在 iOS 模拟器上不起作用【英文标题】:Ionic2 ion-input not working on iOS Simulator 【发布时间】:2017-09-11 16:08:43 【问题描述】:

我向 App Store 提交了我的第一个 ionic 应用程序以供审核。

基本上,Apple 拒绝了审核,因为他们无法登录我的应用程序。他们说当他们点击用户名文本字段时,键盘没有出现(他们提供了一个屏幕截图,我注意到他们正在使用模拟器进行测试)。

我正在研究 ios 模拟器上存在错误,解决问题的方法是切换软件键盘,或取消选中“连接硬件键盘”

我与苹果有很多来回的信息,试图解释这一点,但他们回答说它仍然不起作用。

老实说,我不确定他们是否遵循了键盘步骤。据我所知,当您切换键盘时,它在物理设备和 iOS 模拟器中都能正常工作。

有什么解决方法,或者其他方法可以解决这个问题吗?

【问题讨论】:

您能否提供模拟器中显示的键盘的屏幕截图? 我同意 - 我有完全相同的问题。我很惊讶他们在模拟器上进行测试是公平的。他们倾向于在硬件上进行测试。 Cmd+K 是解决此问题的组合键 - 他们在说什么? 我已经提供了显示键盘正常显示的屏幕截图和视频。我坚持他们需要切换软件键盘,断开硬件键盘。他们一直说我需要解决问题,但我不确定他们是否尝试使用我提供的解决方案重新测试应用程序。 【参考方案1】:

这是一个众所周知的错误,可以通过两种方式规避。

    CMD + K,然后点击进入该字段。 禁用慢速动画”可以在“调试”->“慢速动画”下找到。对我来说,这可以永久解决问题。快捷键是:CMD + T

关于苹果的拒绝: 告诉 Apple,这是一个仅适用于模拟器的已知错误,他们应该禁用慢速动画并按 CMD + K(两次)。

【讨论】:

感谢您的回答。显然,我要求给苹果打个电话。他们使用连接到 iPad 的外部键盘。但是当他们在没有外接键盘的情况下进行测试时,它工作得很好。他们批准了我的申请。 很高兴知道。感谢您的反馈。【参考方案2】:

为什么不在文本输入上使用这些事件之一:

上键、下键、按键、输入

然后使用此插件并显式显示/隐藏键盘?

https://ionicframework.com/docs/native/keyboard/

【讨论】:

据我所知,键盘正在显示,但是当检测到有另一个键盘(硬件键盘)时,iOS 模拟器卡住了。总之,值得一试。 在你的问题中,你说“键盘没有出现”【参考方案3】:

你需要在 config.xml 中加入下面一行:

<preference name="KeyboardDisplayRequiresUserAction" value="false" />

这样当点击文本输入时,键盘将在 iOS 中显示。 (请注意,android 不需要此额外配置。)

您可能还需要直接使用 javascript 专注于该领域;声明一个 ElementRef:

@ViewChild('elemName') yourField: ElementRef;

然后聚焦到它的原生元素元素上:

this.yourField.nativeElement.focus();

【讨论】:

以上是关于Ionic2 离子输入在 iOS 模拟器上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

离子原生存储在 iOS 上不起作用

后台服务科尔多瓦离子应用程序。背景插件在 ios 8.3 上不起作用

Cordova Phonegap 表单输入框在 iOS 上不起作用

iOS:音频单元 RemoteIO 在 iPhone 上不起作用

在 Ionic 中,为啥路由在 iPhone 上不起作用,但在构建版本和离子服务上起作用

iOS框架在模拟器上不起作用