如何使用Cordova/Ionic v1将iOS键盘Return按钮改为Done/Next
在Ionic v1/Cordova中自定义iOS键盘Return键标签
嘿,刚好有过Ionic v1项目的实操经验,这个需求其实不难实现,我给你整理了几种靠谱的方法:
方法1:直接加原生属性(最简单高效)
iOS的原生输入控件本身就支持returnKeyType属性,你可以直接在Ionic的表单组件上加上这个属性就行,不用折腾复杂的逻辑:
要改成Done键的话,这么写:
<ion-input type="text" returnKeyType="done"></ion-input>
要改成Next键的话:
<ion-input type="text" returnKeyType="next"></ion-input>
哪怕你用的是原生<input>标签,同样适用:
<input type="email" returnKeyType="send" placeholder="输入你的邮箱">
注意:这个属性只在iOS上生效,Android会自动适配对应的按键文本,不用额外处理。
方法2:自定义AngularJS指令(适合全局统一或动态切换)
如果你的应用里有大量输入框需要统一设置,或者需要根据业务逻辑动态切换按键类型,可以写个自定义指令来批量处理:
- 先在你的app模块里定义指令:
angular.module('myApp') .directive('customReturnKey', function() { return { link: function(scope, element, attrs) { // 等DOM渲染完成后再操作原生控件 setTimeout(function() { var nativeInput = element[0].querySelector('input, textarea'); if (nativeInput && attrs.customReturnKey) { nativeInput.returnKeyType = attrs.customReturnKey; } }, 100); } }; });
- 然后在模板里直接用:
<ion-input type="password" custom-return-key="done"></ion-input> <ion-textarea custom-return-key="next"></ion-textarea>
这个方法的好处是灵活,比如你可以根据输入框的类型(比如密码框用Done,手机号用Next)动态绑定属性值。
方法3:用Cordova键盘插件增强控制
如果还需要更多键盘相关的功能(比如监听键盘弹出/收起事件、调整页面布局),可以用cordova-plugin-ionic-keyboard这个插件:
- 先安装插件:
cordova plugin add cordova-plugin-ionic-keyboard
- 然后在控制器里调用插件的
setReturnKeyType方法,记得要等设备就绪后再执行:
angular.module('myApp') .controller('MyController', function($scope, $ionicPlatform) { $ionicPlatform.ready(function() { // 找到目标输入框 var targetInput = document.getElementById('myInput'); if (window.Keyboard && targetInput) { // 设置为Done键 Keyboard.setReturnKeyType('done'); } }); });
几个注意事项
- 一定要在iOS真机上测试,模拟器偶尔会有属性不生效的情况;
returnKeyType的值必须是iOS支持的预定义值:Return、Go、Google、Join、Next、Route、Search、Send、Yahoo、Done、Emergency Call、Continue(iOS 9及以上支持),大小写要对应;- 对于
ion-textarea,如果设置后没生效,可以试试加上autocorrect="off"属性辅助生效。
内容的提问来源于stack exchange,提问作者Nirmal Pandey
相关产品推荐
相关产品推荐

