引起无法使用的原因不敢肯定,在网上搜索一些文章大概是说 ios 升级到 11 之后会出现这个问题,当然当 ios 发布 11 时,如果还是在用 ionic1 说明项目是老项目或事掌握的技术的落后了。我是两者皆是。
解决方式很简单,但网上这么多关于这个问题的 blog 都没有直接了当的给出解决方案,让我花了很长时间各种尝试,所以才决定出一篇文档记录一下这个问题。
废话不多说,如果你用的是 ionic v1 这个版本,那么你可以从 Cordova 的 cordova-plugin-ionic-keyboard 插件入手,我写这边文章时 keyboard 的版本时 2.0.0,将这个插件升级到这个版本,在安装升级 cordova-plugin-ionic-keyboard 时,github 中升级文档提到
Instead of hideKeyboardAccessoryBar it's hideFormAccessoryBar
而解决这个问题的方法就是将 hideKeyboardAccessoryBar 或是 hideFormAccessoryBar 设置成 false,由于一开始没有看 GitHub 的文档提到版本升级后属性名变了,而走了很多冤枉道。其实升级完 cordova-plugin-ionic-keyboard 后,只需在 angular.run() 方法中加上下面的代码就可以了
if (window.cordova && window.Keyboard) {window.Keyboard.hideFormAccessoryBar(false);
}
最后结论是 ionic1 技术太老,随着 ios 和 andorid 的版本升级,坑是越来越多。转站 flutter 才是大方向