单击按钮时在 Ionic 上保持键盘打开(聊天应用程序)
Posted
技术标签:
【中文标题】单击按钮时在 Ionic 上保持键盘打开(聊天应用程序)【英文标题】:keep keyboard open on Ionic when button click ( chat app ) 【发布时间】:2018-02-02 03:13:53 【问题描述】:我有一个 Ionic v1 聊天应用程序,我做了所有的事情,但是我遇到了一个著名的问题,当单击发送按钮(发送聊天)时,键盘从输入中失去焦点然后关闭。
我尝试了很多方法,但都没有奏效:
保持焦点的输入指令, 强制关注点击事件, 修改config.xml中InputUserAction的值为false。非常感谢任何帮助。
<div class="sender">
<input type="text" ng-model="..." class="...">
<div class="button-send">
<span class="send-chat"><i class="ion ion-send"></i></span>
</div>
</div>
【问题讨论】:
尝试重新调整您的输入或安装一个键盘插件来防止默认行为 不起作用,重新聚焦时,键盘失去焦点并关闭然后再次打开。 【参考方案1】:好的,找到了解决办法! 对于所有正在使用 ionic 进行类似聊天的应用并希望在单击按钮后键盘保持焦点的所有人,
只需将按钮替换为带有 for="inputID" 的标签,如下所示:
<div class="sender">
<input id="inputID" type="text" ng-model="..." class="...">
<div class="button-send">
<label for="inputID" class="send-chat"><i class="ion ion-send"></i></label>
</div>
</div>
【讨论】:
这在 ios 上效果不佳,因为键盘会上下移动,而不是保持向上。 android 我玩得很好。 @Coo 是的,iOS 刚刚搞砸了,但是通过 Ionic 3,您的所有问题都可以立即解决,很高兴我迁移到它,试一试 @Sletheren 我也在使用 Ionic 3,它究竟如何解决这个问题? @Dimitri 有一个名为inputBlurring
的东西,您可以将其设置为 false。这是我在它周围找到的唯一方法。但是,这会阻止任何正常点击页面上的任何位置来放下键盘,这可能不是您想要的。【参考方案2】:
只需使用 (mousedown)="sentMessage(); $event.preventDefault()"
<ion-button (mousedown)="sentMessage(); $event.preventDefault()">
<ion-icon ios="ios-send" md="md-send"></ion-icon>
</ion-button>
【讨论】:
适用于 Android,尚未在 iOS 上进行测试。 +1 小费!【参考方案3】:尝试通过它的cordova插件强制打开键盘 https://github.com/ionic-team/ionic-plugin-keyboard#keyboardshow
【讨论】:
试过了,键盘关闭又打开,不好。 github.com/ionic-team/ionic-plugin-keyboard/issues/…我找到了这个..它可能会有所帮助以上是关于单击按钮时在 Ionic 上保持键盘打开(聊天应用程序)的主要内容,如果未能解决你的问题,请参考以下文章
在 SwiftUI 中制作聊天应用程序:如何让 ScrollView 在键盘出现时保持原位?