質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3978閲覧

cordovaでキーボードを出したままに

mitsunori

総合スコア13

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

2クリップ

投稿2015/09/27 23:43

編集2018/06/09 13:29

cordova + ionicにて開発しています。

テキスト入力(textarea)とボタンを配置し、ボタンを押下するたびにテキスト入力の文字列をリストへ追加していくイメージの仕様を考えています。

ここで、テキスト入力へフォーカスすることで出現したソフトウェアキーボードがボタンを押下したタイミングで収納されます。これ自体は自然な動作なのですが、今回は次々と入力していきたいので、追加のたびに収納していては不便です。

ボタン押下後テキストへフォーカスを戻し、かつ、キーボードの収納を止める(自動でなく手動で収納する)ことはできないのでしょうか?

また、returnキーの入力で追加する仕様も考えましたが、改行も取り扱いたいのでこちらでは厳しいです。

よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

ionic3ですが解決策が見つかりましたので投稿します。

inputBlurringという設定をfalseにすることでinputやtextarea以外の要素をタッチしてもキーボードが隠れずに連続入力が可能となりました。

ただし、button要素を使用したり、(click)にてクリックイベントをハンドルすると再び隠れるようになります。
私は、div要素にて(touchstart)を使用することで回避しました。
button要素や(click)でないとダメな理由がある方は・・・。

まとめ
1、app.module.tsのIonicModuleへinputBlurringを加えてfalseを設定する。

TypeScript

1@NgModule({ 2 imports: [ 3 IonicModule.forRoot(MyApp, { 4 inputBlurring: false 5 }) 6 ] 7})

2、タッチした時にキーボードを隠したくない(連続入力したい)要素をbuttonではなくdivで追加する。
3、追加したdiv要素へ(touchstart)にてタッチ時のイベントをハンドルする。

HTML

1<ion-content> 2 <textarea></textarea> 3 <div (touchstart)="send()">send</div> 4</ion-content>

こうすることで、ボタン押下ごとにキーボードが隠れてしまう動作を無効にできました。
チャット画面のように連続投稿する仕様には必要不可欠かと思います。
同じ悩みをお持ちの方のお役に立てれば幸いです。
私は2年悩みましたので・・・。

投稿2018/06/09 13:20

編集2018/06/09 13:24
mitsunori

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Monaca+独自フレームワークで開発しています。

ionicのことは知りませんが、<input type="button">であれ<button>であれテキスト入力からフォーカスを奪うので、結果としてキーボードが収納されます。

収納を避けるためにはフォーカスを奪わなければ良いので、ボタンを模したUI部品を<div>で作ってそれを使うというのはどうでしょうか。

ソースは公開できませんが私の方ではそのやり方で実現させています。

投稿2015/10/02 06:01

nandai

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsunori

2015/10/04 14:51

nandai様 ご回答ありがとうございます。 「cordova + ionic」環境で試してみたところ、 テキストからフォーカスが無くなりキーボードは収納されてしまいました。 同様に「cordova + onsenui」でも試した結果も同じでした。 しかし、cordova単体環境であればフォーカスは奪われずにキーボードを出したままにすることができました。 このことからionicとonsenuiの仕様によるものだと推測しています。 共通点として思い浮かぶのは「AngularJS」・・・ cordova単体ならできることなので原因を特定できれば回避できる気がします。 もう少し探ってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問