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 8.3 上不起作用
Cordova Phonegap 表单输入框在 iOS 上不起作用
iOS:音频单元 RemoteIO 在 iPhone 上不起作用