Ionic-framework: Masalah Keyboard

Dibuat pada 3 Mei 2017  ·  98Komentar  ·  Sumber: ionic-team/ionic-framework

Versi ionik: (centang satu dengan "x")
[] 1.x
[x] 2.x
[x] 3.x

Saya mengirimkan ... (centang satu dengan "x")
[x] laporan bug
[ ] permintaan fitur
[] permintaan dukungan => Harap jangan mengirimkan permintaan dukungan di sini, gunakan salah satu saluran ini: https://forum.ionicframework.com/ atau http://ionicworldwide.herokuapp.com/

Perilaku saat ini:

Keyboard dan pengguliran input telah lama menjadi tantangan bagi aplikasi Ionic, bahkan sejak semula ke Ionic V1. Kami baru-baru ini berfokus untuk mencoba menyelesaikan masalah keyboard ini. Masalah yang saat ini kami anggap sebagai prioritas tertinggi dalam hal keyboard dan input adalah sebagai berikut:

  • masukan dalam peringatan terkadang "miring"
  • Formulir yang memiliki banyak masukan terkadang mengalami masalah pengguliran saat memfokuskan masukan ke bagian bawah halaman
  • Beralih antara masukan, area teks, dan lainnya terkadang menyebabkan "terpental" dan masalah UI aneh lainnya
  • Memiliki input yang dikunci ke bagian bawah tampilan tidak berfungsi dengan benar di iOS (keyboard menutupi input)

Saat ini kami sedang mengerjakan pendekatan dua cabang untuk mengubah logika dalam kerangka kerja yang menangani hal ini (terutama untuk Android) bersama dengan beberapa modifikasi pada plugin WKWebView untuk memperbaiki masalah ini untuk iOS. Kami sekarang berada pada titik di mana kami memiliki cabang plugin WKWebView yang memiliki perbaikan untuk iOS dan siap bagi komunitas kami untuk mulai menguji ini dan memberikan umpan balik. Kami telah membuat dokumen Google di sini yang berisi instruksi tentang bagaimana ini dapat diuji. Kami ingin sekali mendapat masukan tentang perbaikan ini! Jangan ragu untuk memberikan umpan balik sebagai komentar untuk masalah ini. Terima kasih telah menggunakan semua orang Ionic!

help wanted v3

Komentar yang paling membantu

Dalam kasus saya AppModule menambahkan impor di bawah ini menghasilkan pengalaman pengguna yang relatif lebih baik daripada default.

IonicModule.forRoot(MyApp, {
            scrollPadding: false,
            scrollAssist: true, 
            autoFocusAssist: false
        }),

Semua 98 komentar

Dalam kasus saya AppModule menambahkan impor di bawah ini menghasilkan pengalaman pengguna yang relatif lebih baik daripada default.

IonicModule.forRoot(MyApp, {
            scrollPadding: false,
            scrollAssist: true, 
            autoFocusAssist: false
        }),

Alhamdulillah akhirnya doa terkabul

  1. Bilah pencarian di dalam tab mendorong bilah tab ke atas.

Bagaimana Menguji di Android?
Kami senang membantu selalu untuk Android atau Desktop. :)

Hai @ mburger81 , pertanyaan bagus! Belum ada versi ionic-angular out yang diperbarui setiap malam, tetapi ketika kami merilisnya, saya akan memperbarui masalah ini dengan instruksi tentang bagaimana Anda dapat menginstalnya untuk pengujian di android.

Oke thx, kami sedang mengerjakan halaman login di mana kami memiliki beberapa masalah gulir masukan.
Jadi saya pikir kita bisa memeriksanya.

FYI sebelum kami dapat mengujinya dan merilisnya ke penguji kami, kami harus menyelesaikan bug INVALID VIEWS (senang untuk pencapaiannya), karena ini adalah masalah yang mengganggu bagi kami

Punya ya! Jadi mengenai masalah gulungan input, dapatkah Anda mencoba menempatkan input di area tampilan Anda yang tidak tertutup keyboard saat dibuka?

Ini ide yang bagus. Penting untuk memastikan bahwa kursor tidak berada di belakang bilah, saat menggulir

Perlu diingat, bahwa kursor tidak memblokir header ion, dengan sekali scrolling

Beberapa umpan balik iOS dari salah satu anggota tim kami @danbucholtz :

Pada kontrol individual yang biasanya tidak digunakan dalam formulir (misalnya input penelusuran), dapatkah kami menyelidiki penutupan keyboard pada "kirim" atau "masuk"?

Saat melakukan tindakan navigasi, keyboard otomatis ditutup jika terbuka. Kita harus meninjau kembali perilaku ini terkait dengan overlay. Misalnya, saya tidak dapat membayangkan ada banyak kasus penggunaan saat membuka modal dan menjaga keyboard tetap terbuka. ActionSheet, Alert, Loading, Modal, Popover, Picker, dan Toast semuanya menyiratkan dimulainya tindakan baru (Memilih waktu misalnya) atau umpan balik pada tindakan yang telah selesai (mengirimkan atau memvalidasi formulir atau sesuatu). Saya rasa masuk akal untuk menutup keyboard dalam kasus membuka overlay.

chats.html

<ion-footer *ngIf="send.load_spinner==false" class="backgound_send_message">
<ion-toolbar>

<textarea *ngIf="Record.StartRecordGo==false" [(ngModel)]="you_comment" (keydown)="handleKeyDown($event)" (focus)="scrollTobottom()" placeholder="{{'chats.message' | translate }}"  id="my-textarea0" class="my-textarea" rows="1" autosize></textarea>

    <button ion-button clear large color="primary" *ngIf="send.you_comment.length>0" (click)="SendMessageServer(items)"><ion-icon class="SendMess" ios="ios-send-outline" md="md-send"></ion-icon></button>


</ion-toolbar>
</ion-footer>

chats.ts

SendMessageServer(items) {
    this.text_message_me.push(this.you_comment);
   document.getElementById('my-textarea0').focus(); // The keyboard remains open
}

Kode ini berfungsi (BUKA KYEBOARD)

<ion-footer>
<ion-toolbar>
<textarea></textarea>
</ion-footer>
</ion-toolbar>

Ini mengubah ketinggian dengan baik, tetapi lebih baik membuat animasi saat ukurannya berubah

https://forum.ionicframework.com/t/no-documentation-for-scrollassist-autofocusassist-inputblurring-config-settings/88450?u=rohinmohandas

Mungkin berguna memiliki dokumentasi untuk konfigurasi ini jika * mereka dapat membantu menangani masalah terkait keyboard dan masukan ini, mungkin hingga 3.2.0 tersedia untuk umum.

Adakah solusi yang terkait dengan kasus saat keyboard menyembunyikan input?

Kode berikut di app.component.ts menghasilkan efek input footer yang diinginkan tetap berada di atas keyboard di iOS dan android. Untuk beberapa alasan, perilaku hamparan statusbar di android memengaruhi cara keyboard menyembunyikan elemen masukan yang diposisikan di bawah ketinggian keyboard.

import {Platform} from "ionic-angular";
import {Keyboard} from "@ionic-native/keyboard";
import {StatusBar} from "@ionic-native/status-bar";
import {SplashScreen} from "@ionic-native/splash-screen";

constructor(platform: Platform,public statusBar: StatusBar, public splashScreen: SplashScreen,
                public keyboard: Keyboard) {

        platform.ready().then(() => {
            if (platform.is("ios")) {
                statusBar.overlaysWebView(true);
                statusBar.styleBlackTranslucent();
            }
            splashScreen.hide();
            keyboard.hideKeyboardAccessoryBar(false); // use only on a need basis if accessory bar is needed.
            .
            .
            .

            }

Perlu diingat, bahwa kursor tidak memblokir header ion, dengan sekali scrolling
key2
key1

Ada kemungkinan # 7047 juga akan diperbaiki?

Bagaimana sebenarnya ini bekerja di browser? Apakah ionic menambahkan fungsionalitas ekstra yang merusak input, atau apakah ini hanya masalah yang menantang dengan bidang input di seluler?

Ini solusi saya, ini berfungsi dengan baik.

  1. setel hideKeyboardAccessoryBar menjadi true
this.keyboard.hideKeyboardAccessoryBar(true)
  1. buat file KeyboardAttachDirective.ts
import { Directive, ElementRef, Input } from '@angular/core';
import { Content, Platform } from 'ionic-angular';
import { Keyboard } from '@ionic-native/keyboard';
import { Subscription } from 'rxjs/rx';


/**
 * <strong i="15">@name</strong> KeyboardAttachDirective
 * <strong i="16">@description</strong>
 * The `keyboardAttach` directive will cause an element to float above the
 * keyboard when the keyboard shows. Currently only supports the `ion-footer` element.
 *
 * ### Notes
 * - This directive requires [Ionic Native](https://github.com/driftyco/ionic-native)
 * and the [Ionic Keyboard Plugin](https://github.com/driftyco/ionic-plugin-keyboard).
 * - Currently only tested to work on iOS.
 * - If there is an input in your footer, you will need to set
 *   `Keyboard.disableScroll(true)`.
 *
 * <strong i="17">@usage</strong>
 *
 * ```html
 * <ion-content #content>
 * </ion-content>
 *
 * <ion-footer [keyboardAttach]="content">
 *   <ion-toolbar>
 *     <ion-item>
 *       <ion-input></ion-input>
 *     </ion-item>
 *   </ion-toolbar>
 * </ion-footer>
 * ```
 */

@Directive({
    selector: '[keyboardAttach]'
})
export class KeyboardAttachDirective {
    @Input('keyboardAttach') content: Content;

    private onShowSubscription: Subscription;
    private onHideSubscription: Subscription;

    private attachTime = 0;

    constructor(
        private elementRef: ElementRef,
        private platform: Platform,
        private keyboard: Keyboard
    ) {
        if (this.platform.is('cordova') && this.platform.is('ios')) {
            this.onShowSubscription = this.keyboard.onKeyboardShow().subscribe(e => this.onShow(e));
            this.onHideSubscription = this.keyboard.onKeyboardHide().subscribe(() => this.onHide());
        }
    }

    ngOnDestroy() {
        if (this.onShowSubscription) {
            this.onShowSubscription.unsubscribe();
        }
        if (this.onHideSubscription) {
            this.onHideSubscription.unsubscribe();
        }
    }

    private onShow(e) {
        let keyboardHeight: number = e.keyboardHeight || (e.detail && e.detail.keyboardHeight);

        if(this.attachTime > 1){
            if(
            keyboardHeight == 313 ||
            keyboardHeight == 258 ||
            keyboardHeight == 216 ||
            keyboardHeight == 253 ||
            keyboardHeight == 226 ||
            keyboardHeight == 271 ||
            keyboardHeight == 216 ||
            keyboardHeight == 264){
                this.setElementPosition(0)
            }else{
                if(this.attachTime > 2){
                    this.setElementPosition(0)
                }else{
                    this.setElementPosition(keyboardHeight);
                }
            }
        }else{
            this.setElementPosition(keyboardHeight);
        }
        this.attachTime ++
    };

    private onHide() {
        this.setElementPosition(0);
        this.attachTime = 0
    };

    private setElementPosition(pixels: number) {
        this.elementRef.nativeElement.style.paddingBottom = pixels + 'px';
        this.content.getScrollElement().style.marginBottom = (pixels + 44) + 'px';
        this.content.scrollToBottom()
    }
}
  1. menggunakan
<ion-header (touchstart)="closeKeyboard()"></ion-header>

...

<ion-content #content (touchstart)="closeKeyboard()"></ion-content>

...

<ion-footer [keyboardAttach]="content" class="messagebar">
    <ion-toolbar no-border>
        <div class="toolbar-inner">
            <div #inputer style="-webkit-user-select: auto;padding:5px;font-size:16px; min-height:1.5em; width:100%;border:1px solid #ccc;background-color:#fff;" contenteditable="plaintext-only" (keyup)="keyup($event)" (focus)="onFocus($event)" (blur)="onBlur($event)"></div>
            <button ion-button small (tap)="send()" [disabled]="!msgContent.length">发送</button>
        </div>
    </ion-toolbar>
</ion-footer>
  1. tambahkan beberapa metode ke XXXPage.ts
    onBlur(event) {
        if (this.keyboardOpen) {
            event.target.focus()
        }
    }

    keyup(event){
        this.msgContent = event.target.innerText
    }

    onFocus(event) {
        this.keyboardOpen = true
    }

    closeKeyboard() {
        this.keyboardOpen = false
        this.keyboard.close()
    }

tautan perview.gif

link preview.mov

@ lh4111 Bagus! Tapi sudahkah Anda menguji di android? Sepertinya tidak berhasil.

Kami memiliki masalah yang sama dengan @aspidvip
@ lh4111 bolehkah saya bertanya kepada Anda, untuk apa solusi Anda? Apakah itu menyelesaikan masalah dengan masukan di bawah tajuk?

@kitkimwong Saya tidak menguji di android, tapi menurut saya prinsipnya harus serupa.

@ mburger81

  1. gunakan metode this.keyboard.hideKeyboardAccessoryBar(true) disediakan oleh ion-native/keyboard to
    setel penutup keyboard Page
  2. saat kursor fokus pada input, keyboard akan terbuka. kemudian atur padding-bottom ion-content untuk menampilkan ion-footer

Bahasa Inggris saya kurang bagus, saya harap Anda bisa mengerti

Apakah di sini menggunakan plugin WKWebView yang disebutkan di utas pertama? Atau apakah semua komentar ini berkaitan dengan UIWebView?

@ jgw96 Saya baru saja menguji WKWebView di perangkat iOS saya. Sangat meningkat untuk saya. Sepertinya bidang input tidak berada di atas keyboard dengan baik seperti yang Anda harapkan dan tertunda, ini muncul di bagian akhir. Apakah itu masalah yang diketahui?

Apakah ini khusus iOS? Saya belum menguji di Android tetapi apakah itu berfungsi di sana?

Rekaman:
https://1drv.ms/v/s!AqSDIyRRHLbYazFGbIPhOGLC4sA

Cordova CLI: 6.4.0
Versi Ionic Framework: 3.0.1
Ionic CLI Versi: 2.1.14
Versi Lib Aplikasi Ionic: 2.1.7
Versi Skrip Aplikasi Ionic: 1.3.0
versi ios-deploy: 1.9.1
versi ios-sim: 5.0.12
OS: macOS Sierra
Versi Node: v7.4.0
Versi Xcode: Xcode 8.3.2 Versi build 8E2002

Hai @manucorporat FYI dari pengujian saya. Lihat posting di atas dan rekam. Aplikasi kami pada dasarnya adalah aplikasi obrolan sehingga akan sangat menyenangkan untuk mengetahui apakah menurut Anda masalah itu dapat diselesaikan.

@ jgw96 @manucorporat bisakah Anda mengomentari status pengujian ini dan kapan perbaikan brnach akan mencapai produksi? Atau apa yang harus dilakukan? Akan sangat menghargainya.

@ jgw96 Mungkinkah Anda memperbarui masalah ini? Tampaknya telah melewatkan pencapaian 3.3.0.

Apakah pernah ada perbaikan resmi untuk masalah keyboard? Sudah merepotkan untuk bekerja sejak Ionic 1 dan masih belum ada perbaikan resmi untuk sesuatu yang sepenting keyboard.

@nuvoPoint LoL, masalah keyboard telah berlangsung selama hampir 1,5 tahun:

  1. https://github.com/ionic-team/ionic/issues/6228
  2. https://github.com/ionic-team/ionic/issues/5432

Dan mereka hanya mengunci masalah .. LOL ...
Jadi .. Saya menyerah ionik karena masalah keyboard satu tahun yang lalu, Dan sekarang, saya kembali ke sini untuk melihat apakah keyboard telah diperbaiki, tetapi seperti yang Anda lihat, tidak ada kemajuan dalam satu tahun ini. :)

Tampaknya mereka tidak ingin memiliki perbaikan resmi meskipun ini adalah komponen dasar untuk aplikasi sederhana !! Itu akan kehilangan semua pengembang yang ingin membangun aplikasi obrolan. Kotak Masukan adalah komponen dasar yang Berinteraksi dengan pengguna, dengan masalah ini kita HANYA Dapat Menggunakan IONIC Untuk Membangun Beberapa Aplikasi Informasi Sederhana . Dan Mungkinkah ini adalah posisi ionik ...? LOL. Saya tidak tahu.

Dan jika Anda melihat pembahasan di forum, banyak pengembang memiliki masalah dan jawaban yang sama:
Gunakan Ionic untuk membangun aplikasi obrolan asli sederhana seperti tidak mungkin:

https://forum.ionicframework.com/t/about-to-give-up-with-ionic-3-simple-native-like-chat-page-not-possible/87548

Teman-teman, keyboard sedang dikerjakan, dan ada cabangnya di plugin cordova untuk wk jika Anda ingin mengujinya.

cordova plugin add https://github.com/driftyco/cordova-plugin-wkwebview-engine.git#keyboard-fixes --save

Ini adalah perbaikan saat ini: https://github.com/ionic-team/cordova-plugin-wkwebview-engine/pull/131

Coba instal, dan lihat apakah lebih baik atau tidak. Tim sedang mencari umpan balik

Diedit:

@AmitMY bagaimana Anda ingin saya mengirim umpan balik? Di utas ini?

Menguji WKWebView di perangkat iOS saya. Sangat meningkat untuk saya.

Isu terkini:
Sepertinya bidang input tidak berada di atas keyboard dengan baik seperti yang Anda harapkan dan tertunda, ini muncul di bagian akhir. Apakah itu masalah yang diketahui?

Rekaman:
https://1drv.ms/v/s!AqSDIyRRHLbYazFGbIPhOGLC4sA

paket global:
@ ionic / cli-utils: 1.2.0
Cordova CLI: 7.0.1
Ionic CLI: 3.2.0

paket lokal:
@ ionic / app-scripts: 1.3.7
@ ionic / cli-plugin-cordova: 1.2.1
@ ionic / cli-plugin-ionic-angular: 1.2.0
Platform Cordova: ios 4.4.0
Kerangka Ionik: sudut ionik 3.0.1

Sistem:
Node: v7.4.0
OS: macOS Sierra
Xcode: Xcode 8.3.2 Versi build 8E2002
ios-deploy: 1.9.1
ios-sim: 5.0.12

@jrmcdona Saya pikir Anda harus memposting umpan balik di sini. @manucorporat akan melihatnya ketika dia bisa
Cobalah untuk tetap profesional mungkin, seperti - sangat bagus Anda memiliki video, tetapi juga jelaskan apa yang salah dalam video (sehingga kami dapat melacak masalah tanpa menonton rekaman setiap kali)

Adakah harapan untuk memperbaiki masalah tab dan keyboard yang terbuka?

@ Floyd1256 Tautkan di sini, dengan semua informasi yang Anda miliki. Seluruh utas ini mungkin akan ditinjau pada akhir minggu depan, dan perbaikan akan dilakukan sesuai dengan umpan balik

Saya memerlukan fitur obrolan di aplikasi ionik saya.
Saya menguji cordova-plugin-wkwebview-engine.git # keyboard-fixes dalam proyek saya, peningkatan besar telah dilakukan.
Namun masih ada sesuatu yang tidak dapat kami lakukan dibandingkan dengan manajemen keyboard asli.
Referensi saya adalah fitur perpesanan di ponsel saya tetapi itu adalah hal yang sama untuk aplikasi obrolan terbesar yang terkenal:
Ketika kita mengklik untuk menulis pesan baru, keyboard muncul dan mendorong teks masukan tetap bagian bawah DAN pesan terakhir TETAPI bukan header tetap atas.
Animasi dorong halus dan kita dapat melihat pesan terakhir bahkan saat kita mengetik pesan baru.
Sebagai contoh, cukup tulis dan kirim SMS dengan telepon mana saja.

Saya ingin memiliki perilaku yang sama dengan keyboard ionik pada perangkat android, ios, dan windows.
Pada keyboard ionik saat ini, animasi dorong tersentak dan keyboard mendorong masukan tetap bagian bawah tetapi mencakup pesan terakhir (di semua perangkat).
Untuk pengujian cukup tambahkan input teks di footer ionik dan ketik teks.
Tantangannya besar tetapi pengguna akhir tidak dapat menerima keyboard apa adanya, kesenjangan dengan yang asli sangat mencolok.
Jika tidak, terima kasih untuk kerangka ionik yang hebat.

Kiri untuk membuat animasi saat mengubah ukuran dan kemampuan untuk menonaktifkan pengubahan ukuran saat keyboard muncul di tab tidak muncul! Atau memungkinkan untuk menonaktifkan tampilan tab saat keyboard ditampilkan

Baru-baru ini menghilang gulir ke samping

Saya memiliki desain yang menarik untuk masalah ini, dengan menambahkan tampilan web bersarang di atas tampilan web utama. sehingga pengembang memiliki opsi untuk memisahkan UI menjadi 2 lapisan, satu untuk konten utama, dan yang kedua untuk UI apa pun yang perlu disinkronkan dengan keyboard.

@ Khalid-Nowaf tampilan utama Anda tidak mendorong dalam desain ini saat keyboard naik. Jadi dalam skenario obrolan atau SMS Anda menutupi semua pesan Anda. Di iOS SMS misalnya, pesan didorong bersama dengan kotak teks dengan cara yang sangat mulus - sehingga Anda selalu dapat melihat pesan terakhir yang dikirim. Kemudian keyboard tidak jatuh setelah memasukkan teks, ia tetap di sana sampai Anda terus mengetik dan pergi. Saya pribadi merasa desain ionik harus meniru iOS dan Android (meskipun saya tidak dapat berbicara untuk Android karena saya belum pernah menggunakannya). Saya juga tidak tahu apa-apa tentang kerumitan untuk mewujudkannya dari sudut pandang pembangunan tetapi berharap itu semakin dekat. Sangat meningkat untuk saya dengan WKWebView.

@jrmcdona , masalah utama dengan papan ketik saat ini, adalah bagaimana membuat footer menggulir dengan mulus dengan papan ketik. plugin keyboard dan tampilan web saat ini mencoba untuk saling mengirim acara, sehingga mereka dapat mengelola animasi dan pengubahan ukuran .. dll, dan sulit untuk membuatnya tersinkronisasi satu sama lain. Terkadang keyboard lebih cepat dari animasi tampilan web. jadi apa yang saya coba bahas di sini adalah untuk membuat tampilan web kedua di atas tampilan utama. dan secara native keyboard akan mendorongnya ke atas, sementara tampilan web utama dapat memiliki opsi untuk di-scroll atau tidak "bergantung pada apa yang diinginkan developer" dan menggulir tampilan utama tidak menjadi masalah sekarang menurut saya. aplikasi obrolan seperti itulah yang membuat sebagian besar masalah, karena semuanya dalam satu lapisan.

Seseorang di forum mengatakan ada plugin yang sangat bagus untuk memperbaiki masalah keyboard dengan sempurna.
Https://github.com/EddyVerbruggen/cordova-plugin-native-keyboard
Berita buruknya adalah plugin ini berbayar.

Juga, hanya menguji "cabang keyboard tetap" dari ionic, masih ada masalah besar dan pengalaman pengguna yang buruk.

@kitkimwong Wow itu terlihat bagus, kecuali kenyataan bahwa itu cukup mahal (terutama untuk fakta bahwa ionik gratis). @manucorporat, Anda pasti harus melihatnya

Plugin itu terdaftar di dokumen ionik. Saya akan mencobanya hari ini dan melihat bagaimana kelanjutannya. Saya kira $ 200 tidak terlalu mahal untuk beberapa perusahaan. Dua jam waktu pengembang akan membayar untuk itu dan saya rasa Anda bisa menghabiskan waktu berjam-jam untuk bermain-main dengan keyboard tanpa plugin.
http://ionicframework.com/docs/native/native-keyboard/ Jangan salah paham, lebih baik tidak membayar tapi saya mungkin!

Saya telah membuat repo untuk menguji keyboard, dengan repo ini Anda dapat menguji

  • aplikasi obrolan seperti
  • bentuk dan banyak input "tes E2E bentuk ionik"
  • wkwebview untuk ios ** baru
  • RTL

ini beberapa demo saya



tautan repo: https://github.com/Khalid-Nowaf/ionic-keyboard

semua yang harus Anda lakukan setelah mengkloning repo
sh ionic cordova run ios --prod ionic cordova run android --prod

7047

Mungkinkah ide untuk menyertakan bidang input aktual secara native sebagai opsi untuk keyboard? Maka kita tidak akan bergantung pada rendering DOM yang tidak cukup cepat, dan memiliki input stick ke keyboard akan lebih mudah diimplementasikan.

Pepatah lama mengatakan "ketika Anda memiliki palu, semuanya tampak seperti paku" muncul di benak; jadi mungkin kita perlu melakukan pendekatan secara berbeda.

@larssn itulah yang dilakukan oleh plugin keyboard berbayar. Jadi sepertinya pilihan yang bagus.

@jrcdona Mungkin baik-baik saja ya. Meskipun lebih suka memiliki solusi in-house yang bekerja 100%. Di masa lalu, saya menjadi bergantung pada beberapa plugin yang rusak, dan mempertahankannya hanyalah mimpi buruk kecil.

@larssn tidak menyarankan untuk menggunakan plugin ini. Apakah menyarankan ide Anda untuk ionic melakukan desain itu terdengar bagus dan itu juga yang dilakukan plugin.

Sampai kami mendapatkan umpan balik dari tim ionik tentang masalah keyboard saat ini, - Jika ada yang ingin menguji plugin berbayar saya membuat repo di sini. Namun, saya tidak dapat menampilkan keyboard pada awalnya karena alasan tertentu. Saya harus mengklik Toggle di kanan atas agar muncul. Tidak tahu mengapa itu tidak akan muncul saat halaman dimuat. Suka demonya.

https://github.com/jrmcdona/keyboard-test

Solusi yang berhasil untuk saya:

  • Gunakan input alih-alih ion-input

@SoldierCorp maksud Anda di ionic cabang uji WkWebView disediakan? Atau UIWebView?

@jrmcdona Dalam template komponen, elemen html itu sendiri.

Mempertimbangkan semua komentar dan harapan tentang topik ini, mengapa tidak berpikir untuk memberikannya
komponen obrolan khusus termasuk keyboard dan teks input? Terlalu sulit untuk membuatnya oleh pengembang umum dan akan membuat frustasi untuk menggunakan plugin pihak ketiga meskipun tampaknya sangat bagus

Setuju dengan 100% itu. Jika itu tidak dapat dicapai karena kerumitan tertentu yang mereka hadapi maka itu juga akan sangat membantu bagi kita semua untuk mengetahuinya.

@AmitMY @manucorporat Mengenai cabang pengujian WKWebView. Percayalah bahwa keyboard tidak boleh menutup setelah Anda menekan tombol kirim.
Seperti yang akan Anda lihat selama percakapan SMS di iOS. Jika pengembang tidak menginginkan perilaku tersebut, mereka dapat memanggil metode tutup keyboard tetapi secara default metode itu harus tetap terbuka sehingga orang dapat mengeluarkan pesan selama skenario obrolan tanpa keyboard memantul ke atas dan ke bawah.

Apa status cabang ini? Apakah mungkin untuk menampilkan berita terbaru tentang keyboard? @AmitY @AmitY @orporat @ jgw96

@jrmcdona itu digabungkan dalam master. Jangan ragu untuk mencobanya:
[email protected]

Oke! 👍🏼

@manucorporat Apakah saya cukup menginstal npm [email protected] untuk mendapatkan build itu?
Saya mencoba itu tetapi tidak valid. Tidak yakin bagaimana mendapatkannya kecuali build yang Anda ingin saya uji.

@jrmcdona jalankan npm v ionic-angular versions --json untuk melihat versi mana yang diterbitkan

@tokopedia

npm install ionic-angular<strong i="7">@nightly</strong>

Ok terima kasih @manucorporat . Saya menghapus cabang uji WKWebView dan menambahkannya kembali dengan yang terbaru.
<plugin name="cordova-plugin-wkwebview-engine" spec="^1.1.3" />

Kemudian saya memperbarui Angular menjadi 4.1.3 sehingga saya dapat menginstal setiap malam.

Sepertinya belum siap untuk prime time. Cabang pengujian WKWebView berperilaku lebih baik daripada yang kami miliki sekarang. Dengan versi ini kotak input tidak muncul sama sekali. Hanya keyboard tanpa input. Di cabang uji, keyboard akan naik tetapi hanya sedikit tertunda. Tidak ideal tapi bisa digunakan.

Apakah ada yang memiliki repo keyboard yang berfungsi dengan baik?

Apakah ini masalah yang diketahui, apakah ada daftar masalah yang diketahui?
Haruskah saya mencatat masalah baru?

Ini videonya.
https://1drv.ms/v/s!AnyXOztVClZYbfswP -UEtaHEU0I

Ini kodenya:

<div class="chat-window-container" style="padding-top:20px">
  <div class="chat-window">
    <div class="message-list">

      <chat-message *ngFor="let message of messages | async" [message]="message">
      </chat-message>

    </div>

    <message-input>

      <div style="flex:1;padding-left:5px;">
        <ion-input [(ngModel)]="draftMessage.text" (keydown.enter)="onEnter($event)" autofocus="" placeholder="Type to chat..." maxlength="2000"></ion-input>
      </div>
      <div (click)="onEnter($event)" style="display:table;width:50px;height:100%">
        <ion-icon name="send" color="primary" class="message-send-icon"></ion-icon>
      </div>
    </message-input>
  </div>
</div>

Terima kasih semuanya

@jrmcdona ya, masih belum rilis, kami sedang menyiapkan plugin keyboard baru:

  1. Perbarui CLI:
    ``
    npm install -g ionic

2. Make sure you are using ionic-framework nightly or 3.4

3. Make sure you are using the latest WK plugin

4. Remove ionic-keyboard-plugin: **SUPER IMPORTANT STEP!!!!**

5. Install the new keyboard plugin: 
 ```
ionic cordova plugin add https://github.com/ionic-team/cordova-plugin-keyboard --save

TOLONG! beri tahu saya cara kerjanya untuk Anda

@tokopedia
Versi 3.4 belum diterbitkan.

Nightly dan versi lain yang diterbitkan baru-baru ini gagal bagi saya karena tidak valid. Lihat tangkapan layar

screen shot 2017-06-14 at 7 27 24 pm

@jrmcdona sudahkah Anda mencoba menghapus node_module dan menjalankan npm install lagi? pastikan Anda menggunakan --save dalam ionic-angular @ nightly.

Namun, 3.4 akan dirilis hari ini.

@manucorporat UI terlihat cukup bagus di sini! Kotak input tetap berada di atas keyboard. Mungkin pemisahan yang sangat ringan antara input dan keyboard sehingga Anda dapat sedikit mengetahui bahwa keduanya bukan satu unit yang bagus. Tapi sangat meningkat!

Saya tidak yakin bagaimana cara mengimpor Keyboard ke dalam aplikasi untuk bermain dengan metode Show / Hide.
(yaitu, impor {Keyboard} dari '@ ionic-native / keyboard';)

Sepertinya jika Anda mengklik tombol kirim, keyboard akan menutup secara otomatis (Saya tidak menutupnya dalam kode karena saya tidak mengimpor Keyboard ke dalam aplikasi untuk menggunakan metode Keyboard.Show, dll.) Apakah mungkin untuk menyimpan keyboard terbuka seperti cara kerja SMS iOS?

Ini rekamannya.
https://1drv.ms/v/s!AnyXOztVClZYcY3vYXiXYaAZNdE

Bertanya-tanya apakah Anda pernah bermain-main dengan memasukkan input dengan plugin keyboard itu sendiri dan apakah gayanya sesuai dengan jenis perangkat?

Kerja bagus Manu!

@manucorporat memang peningkatan yang luar biasa, dapatkah Anda menambahkan opsi untuk mendorong konten (kecuali header) sehingga kami dapat melihat pesan terakhir saat keyboard terbuka dan teks masukan tetap di bagian bawah?

Plug-in apa yang perlu saya instal agar keyboard berfungsi?

@aspidvip Manu menyebutkannya beberapa posting kembali. Saya akan menyalinnya di sini.

Perbarui CLI:
npm install -g ionic
Pastikan Anda menggunakan kerangka ionik nightly atau 3.4

Pastikan Anda menggunakan plugin WK terbaru

Hapus ionic-keyboard-plugin: LANGKAH SUPER PENTING !!!!

Instal plugin keyboard baru:

plugin ionic cordova tambahkan https://github.com/ionic-team/cordova-plugin-keyboard --save

Dan Bagaimana cara mengakses keyboard plugin baru?

Ada baiknya jika keyboard ditambahkan sebagai anak di div: ~

~ Misalnya, pekerjaan plugin google maps

Bagaimana kemajuan dalam bekerja dengan keyboard?

Kerja yang fantastis @manucorporat . Saya baru saja memutakhirkan dari 3,2 menjadi 3,5 setiap malam (@ 3.5.3-201707261447) dan tampaknya berfungsi sebagaimana mestinya di sebagian besar formulir yang saya miliki di seluruh aplikasi saya.

Sekarang kita hanya perlu mempublikasikan demo aplikasi yang menunjukkan semua ini berfungsi. Jika ada minat saya bisa mencoba dan berkontribusi selama akhir pekan.

Terima kasih untuk semua pekerjaan yang dilakukan di @manucorporat ini! (Dan semua yang telah mengujinya juga).

@ Peege151 Saya pasti tertarik dengan demo aplikasi ini. Saya baru saja sampai pada titik memasukkan keyboard di aplikasi saya untuk mengobrol, jadi akan dapat memberikan pengujian menyeluruh saat siap, dan laporkan kembali ke sini.

@ Peege151 Saya ingin melihat aplikasi-demo!

Oke, ini mungkin mengejutkan tetapi saya masih menggunakan Ionic 2.2.1 dan saat ini saya tidak dapat memutakhirkan ke yang terbaru karena saya pikir ini akan memperkenalkan bug baru yang saya tidak mampu miliki saat ini.
Https://github.com/driftyco/cordova-plugin-wkwebview-engine.git#keyboard -fixes ini tampaknya berfungsi tetapi saya khawatir itu masih akan merusak Aplikasi di iOS dengan kesalahan "Lebih banyak tugas yang dieksekusi kemudian dijadwalkan" .

Dapatkah saya menggunakan https://github.com/driftyco/cordova-plugin-wkwebview-engine.git dengan masih Ionic 2.2.1? Ada kesempatan?

Jadi saya mencoba rilis terbaru dari plugin ini 1.1.3 dengan Ionic 2.2.1, mengikuti instruksi di repo github, menambahkan kode di bawah ini dan menghapus ionic-plugin-keyboard (Saya berasumsi inilah yang dimaksud @manucorporat dalam komentarnya) - melakukan npm menginstal plugin, membangun Aplikasi dan mencobanya.
Pada simulator iOS dengan iOS versi 10+ dan bekerja dengan baik seperti yang diharapkan tanpa masalah dan tanpa crash. Saya masih harus mencobanya di ponsel asli (sebelumnya aplikasi saya macet saat menggunakan solusi di sini https://stackoverflow.com/questions/36706398/in-ionic-2-how-to-float-an-element-above- the-keyboard-when-the-keyboard-show / 36804830 # 36804830)
Tip untuk keyboard menghilang, tambahkan ini ke tombol
(mousedown)="$event.preventDefault()"

Config.xml disertakan

<feature name="CDVWKWebViewEngine">
  <param name="ios-package" value="CDVWKWebViewEngine"/>
</feature>
<plugin name="cordova-plugin-wkwebview-engine" spec="~1.1.3"/>
<plugin name="cordova-plugin-keyboard" spec="https://github.com/ionic-team/cordova-plugin-keyboard"/>
<allow-navigation href="http://localhost:8080/*"/>

Saya punya tiga pertanyaan, jika ada yang bisa membantu:
1- Apakah semuanya akan terus bekerja secara normal di Android setelah menghapus ionic-plugin-keyboard?
2- Apakah <allow-navigation href="http://localhost:8080/*"/> benar? dengan localhost: 8080 ?
3- Haruskah saya menghapus kode di bawah ini dari config.xml

<feature name="Keyboard">
  <param name="ios-package" onload="true" value="IonicKeyboard"/>
</feature>

Jika masalah Anda ada di android, ini akan membantu Anda. Di ionic config.xml, tambahkan baris berikut di tag platform name = "android".

<platform name="android"> 
  <edit-config file="AndroidManifest.xml" mode="merge"    target="/manifest/application/activity"> <activity android:windowSoftInputMode="adjustPan" /></edit-config>
  ...the rest of the android configs...
</platform>

Ini akan mencegah keyboard untuk mendongkrak semuanya dan hanya menghamparkan keyboard pada konten. Jadi perilakunya akan sama atau mirip dengan keyboard ios

@Jatapiaro Ini tidak bekerja dengan baik bila Anda memiliki masukan di bagian bawah tampilan, keyboard akan menyembunyikannya dan Anda tidak akan dapat melihat apa yang Anda ketik.

Menurut saya, Ionic bukanlah tempat terbaik untuk aplikasi obrolan. Saya tidak pernah bisa melakukannya dengan benar dan percaya itu telah menjadi perjuangan selama beberapa tahun dari semua posting dan komentar. Hanya pendapat pribadi saya. Jika ada contoh aplikasi obrolan yang berfungsi untuk ionic di iOS dan android yang mungkin sangat membantu orang.

Ya, sebenarnya, kami membayar untuk itu dan itu cukup bagus! Itu akan menjadi jalan terbaik bagi orang-orang yang mampu. Menurut pengalaman saya.

Di suatu tempat di plugin keyboard EddyVerbruggen Max Lynch telah menyebutkan bahwa plugin itu bagian dari paket obrolan Ionic. Saya bertanya tentang hal itu di utas itu dan juga mentweet dia. Tidak mendapat tanggapan Saya tidak yakin tentang apa paket obrolan itu. Sudah lama sejak saya memperhatikan jadi mungkin ada pembaruan tentang itu ...

Jika saya ingat dengan benar, saya melihat di suatu tempat di twitter seperti seminggu yang lalu bahwa Ionic sedang mengerjakan pembaruan / plugin keyboard baru ... jika saya tidak salah, tetap tenang, tunggu & lihat

halo Saya memiliki proyek IONIC v1, dan saya menemukan Tombol kembali terkadang tidak valid. Ini mengganggu saya untuk waktu yang lama, saya butuh bantuan terima kasih

@miaozhenkun repo ini untuk Ionic v3 +, untuk v1 digunakan https://github.com/ionic-team/ionic-v1

@astec Apakah Anda orang Cina? terima kasih banyak

keyboard bermasalah dengan ion-textbar

<ion-card class="cards " > <div class="relative"> <div class="image_container"> <img class="imageFull" src="http://via.placeholder.com/200x200" /> </div> <ion-row class=" absolute bottom0 "> <ion-item> <ion-textarea placeholder="Message..." > </ion-textarea> </ion-item> </ion-row> </div> </ion-card>

Saya menggunakan daftar kartu di atas dengan css di bawah ini
.relatif{
posisi: relatif ! penting;
}
.mutlak{
posisi: mutlak ! penting;
}
.bottom0 {
bawah: 0;
}

ketika saya mengklik textarea itu membuka keyboard tetapi tidak menggulir ke elemen, tetapi ketika saya mengetik sesuatu itu menggulir ke textarea.

Saya telah mengamati bahwa masalah hanya ada jika kita menggunakan relatif posisi untuk sembarang orang tua dari area ion-teks.

ada solusi workaroud dengan posisi relatif?

Hai teman-teman!
ada yang menemukan solusi untuk ini.
bantuan Anda dihargai.

paket `cli: (/usr/local/Cellar/node@6/6.12.2/lib/node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

paket global:

cordova (Cordova CLI) : 8.0.0

paket lokal:

@ionic/app-scripts : 3.1.6
Cordova Platforms  : android 6.3.0 ios 4.5.4
Ionic Framework    : ionic-angular 3.9.2

Sistem:

Android SDK Tools : 26.1.1
Node              : v6.12.2
npm               : 5.5.1 
OS                : macOS Sierra
Xcode             : Xcode 9.2 Build version 9C40b

Variabel Lingkungan:

ANDROID_HOME : /Users/santhoshgl/Library/Android/sdk

Lain-lain:

backend : legacy`

tambahkan ke tombol klik Anda (mousedown)="$event.preventDefault(); yourFunction()"

Ada berita?

Saya pikir Anda akan ingin menunggu dan menggunakan Avocado @mladilav

Kami mengalami masalah dengan keyboard iOS kami dalam input ion, singkatnya, input tidak akan memiliki tanda sisipan setelah keyboard muncul, pengguna dapat mengetik dengan benar ke dalam bidang. Saya mencoba berbagai versi ionik yang berbeda, versi tampilan web, dll, semuanya tidak berhasil. Saya percaya ini adalah masalah di mana jika masukan ion perlu digulir ke, itu akan memiliki masalah, jika masukan ion berada di bagian paling atas halaman, sepertinya tidak ada masalah.

Namun saya menemukan satu hal yang benar-benar memperbaiki masalah kami: Saya membangun aplikasi itu di Xcode 8.3.3. Semua build sebelumnya yang saya coba menggunakan Xcode 9.0 hingga rilis Xcode 9.3 terbaru yang keluar beberapa hari yang lalu. Masalah dengan perbaikan ini adalah, saya yakin Apple mungkin akan menjatuhkan formulir aplikasi yang dikirimkan dari Xcode 8 dalam waktu dekat. Ada yang punya ide lain?

Untuk scrolling pb, saya menulis retasan di sini: https://github.com/ionic-team/ionic/issues/10629#issuecomment -395084125

Terima kasih atas masalahnya! Kami telah memindahkan kode sumber dan masalah untuk Ionic 3 ke dalam repositori terpisah. Saya memindahkan masalah ini ke repositori untuk Ionic 3. Harap lacak masalah ini di sana.

Terima kasih telah menggunakan Ionic!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat