HTML选择";“完成”;Ionic for iOS上未显示标签

HTML选择";“完成”;Ionic for iOS上未显示标签,html,angularjs,cordova,safari,ionic,Html,Angularjs,Cordova,Safari,Ionic,我正在使用Ionic框架构建一个iOS应用程序。使用select elements时,在iOS native上选择菜单中的项目时,不会得到带有标签“Done”的标题。但是,当我在iOS/Safari中使用该应用程序时,它会显示出来。截图和代码附加。如对此有任何意见/解决方案,将不胜感激 屏幕截图: iOS Safari屏幕截图 iOS原生/离子屏幕截图 标记 <label class="item item-input item-select"> <div class

我正在使用Ionic框架构建一个iOS应用程序。使用select elements时,在iOS native上选择菜单中的项目时,不会得到带有标签“Done”的标题。但是,当我在iOS/Safari中使用该应用程序时,它会显示出来。截图和代码附加。如对此有任何意见/解决方案,将不胜感激

屏幕截图:

iOS Safari屏幕截图

iOS原生/离子屏幕截图

标记

<label class="item item-input item-select">
    <div class="input-label">
        Bostadstyp
    </div>
    <select ng-change="addParam('objectType', selectedHouseType)" ng-model="selectedHouseType" ng-options="houseType.id as houseType.label for houseType in houseTypes"></select>
</label>

博斯塔德斯泰普

爱奥尼亚应用程序在app.js中包含一个默认代码,该代码隐藏了键盘辅助栏,您需要对以下行进行注释:cordova.plugins.keyboard.hideKeyboardAccessoryBar(true)

得到这样的东西:

// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
  //cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  cordova.plugins.Keyboard.disableScroll(true);

}

对于@emccracken的评论,“因为本地应用很少有辅助条。一个应用程序是用网络技术构建的,而不是本地的,这是一个彻底的放弃。”

您可以根据需要显示和隐藏附件栏,这是非常有用的。从指令中去掉$timeout对我更有效。这是我的

.directive('select', function() {
  return {
    restrict: 'E',
    link: function(scope, element, attrs) {
      element.bind('focus', function(e) {
        if (window.cordova && window.cordova.plugins.Keyboard) {
          // console.log("show bar (hide = false)");
          cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
        }
      });
      element.bind('blur', function(e) {
        if (window.cordova && window.cordova.plugins.Keyboard) {
          // console.log("hide bar (hide = true)");
          cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }
      });
    }
  };
})

如果你仍然有这个问题,我的案例是键盘和插件之间的冲突 cordova插件键盘和cordova插件离子键盘

因此,请检查config.xml以查看是否有多个插件,如果有,请使用以下方法删除:

cordova plugin remove [plugin-name] cordova插件移除[插件名称] 然后安装合适的插件:

ionic cordova plugin add ionic-plugin-keyboard 爱奥尼亚cordova插件添加爱奥尼亚插件键盘

然后您将能够使用cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false)


希望有帮助。

太棒了!谢谢你!非常感谢。为什么我一开始就想用它?太好了!我真的不知道为什么爱奥尼亚的项目带有这个隐藏功能。根据我的经验,评论它并没有减少它。我必须将
true
更改为
false
,并以这种方式运行它。因此,只有当您运行以下代码时,血腥的问题才会消失;插件键盘hideKeyboardAccessoryBar(false);在过去2个月内,此项的可能副本不再有效。爱奥尼亚的键盘插件会在你做出更改后覆盖你的更改,所以你要么100%的时间都被附件条卡住,要么100%的时间都没有附件条。这真的有点愚蠢。