Ionic ๋ฒ์ : ( "x"๋ก ํ๋ ์ ํ)
[] 1.x
[x] 2.x
[x] 3.x
์ ์ถ ์ค์
๋๋ค
[x] ๋ฒ๊ทธ ์ ๊ณ
[ ] ๊ธฐ๋ฅ ์์ฒญ
[] ์ง์ ์์ฒญ => ์ฌ๊ธฐ์ ์ง์ ์์ฒญ์ ์ ์ถํ์ง ๋ง๊ณ ๋ค์ ์ฑ๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ญ์์ค : https://forum.ionicframework.com/ ๋๋ http://ionicworldwide.herokuapp.com/
ํ์ฌ ํ๋ :
ํค๋ณด๋ ๋ฐ ์
๋ ฅ ์คํฌ๋กค์ Ionic ์ฑ์์ ์ค๋ซ๋์ ๋์ ์ด๋์ด ์์ผ๋ฉฐ Ionic V1๋ก ๋์๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ต๊ทผ ์ด๋ฌํ ํค๋ณด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ค์ ์ ๋์์ต๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์๊ฐํ๋ ํค๋ณด๋ ๋ฐ ์
๋ ฅ๊ณผ ๊ด๋ จํ์ฌ ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋์ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๋ ํ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ํ๋ ์ ์ํฌ (์ฃผ๋ก Android ์ฉ)์ ๋ก์ง์ ์์ ํ๋ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์๊ณผ iOS์์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด WKWebView ํ๋ฌ๊ทธ์ธ์ ์ผ๋ถ ์์ ํ๊ณ ์์ต๋๋ค. ์ด์ iOS ์ฉ ์์ ์ฌํญ์ด ํฌํจ ๋ WKWebView ํ๋ฌ๊ทธ์ธ ๋ถ๊ธฐ๊ฐ ์์ผ๋ฉฐ ์ปค๋ฎค๋ํฐ์์์ด๋ฅผ ํ ์คํธํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณต ํ ์ค๋น๊ฐ๋์์ต๋๋ค. ์ฌ๊ธฐ ์ ํ ์คํธ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ด์๋ Google ๋ฌธ์๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ด ์์ ์ฌํญ์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค! ์ด ๋ฌธ์ ์ ๋ํ ์๊ฒฌ์ผ๋ก ์์ ๋กญ๊ฒ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ญ์์ค. Ionic ๋ชจ๋๋ฅผ ์ฌ์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ ๊ฒฝ์ฐ์๋ AppModule์ด ์๋์ ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์ถ๊ฐํ๋ฉด ๊ธฐ๋ณธ๊ฐ๋ณด๋ค ์๋์ ์ผ๋ก ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ด ์์ฑ๋ฉ๋๋ค.
IonicModule.forRoot(MyApp, {
scrollPadding: false,
scrollAssist: true,
autoFocusAssist: false
}),
ํ๋๋ ๊ฐ์ฌ ๋๋์ด๊ธฐ๋ ์๋ต
Android์์ ํ
์คํธํ๋ ๋ฐฉ๋ฒ?
Android ๋๋ ๋ฐ์คํฌํฑ์ ์ํด ํญ์ ๊ธฐ๊บผ์ด ๋์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. :)
์๋ ํ์ธ์ @ mburger81 , ์ข์ ์ง๋ฌธ์ ๋๋ค! ionic-angular์ ์ ๋ฐ์ดํธ ๋ ์ผ๊ฐ ๋ฒ์ ์ ์์ง ์์ง๋ง, ์ฐ๋ฆฌ๊ฐ ํ๋๋ฅผ ์ถ์ ํ ๋ ๋๋ ์๋๋ก์ด๋์์ ํ ์คํธํ๊ธฐ ์ํด ์ด๋ป๊ฒ ์ค์นํ ์ ์๋์ง์ ๋ํ ์ง์นจ์ผ๋ก์ด ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ดํธ ํ ๊ฒ์ ๋๋ค.
์ข์์, ์ฐ๋ฆฌ๋ ์
๋ ฅ ์คํฌ๋กค ๋ฌธ์ ๊ฐ์๋ ๋ก๊ทธ์ธ ํ์ด์ง์์ ์์
์ค์
๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํ์ธํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐธ๊ณ ๋ก ํ ์คํธํ์ฌ ํ ์คํฐ์๊ฒ ๋ฆด๋ฆฌ์คํ๊ธฐ ์ ์ INVALID VIEWS ๋ฒ๊ทธ (์ด์ ํ์ ๋ง์กฑ)๋ฅผ ํด๊ฒฐํด์ผํฉ๋๋ค. ์ด๋ ์ฐ๋ฆฌ์๊ฒ ์ค์ํ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์์ด! ๋ฐ๋ผ์ ์ ๋ ฅ ์คํฌ๋กค ๋ฌธ์ ์์ ํค๋ณด๋๊ฐ ์ด๋ ธ์ ๋ ๊ฐ๋ฆฌ์ง ์๋๋ณด๊ธฐ ์์ญ์ ์ ๋ ฅ์ ๋ฐฐ์น ํด ๋ณผ ์ ์์ต๋๊น?
์ด๊ฒ์ ์ข์ ์๊ฐ์ ๋๋ค. ์คํฌ๋กค ํ ๋ ์ปค์๊ฐ ๋ง๋ ๋ค๋ก ์ด๋ํ์ง ์๋๋กํด์ผํฉ๋๋ค.
์คํฌ๋กค ํ ๋ ์ปค์๊ฐ ์ด์จ ํค๋๋ฅผ ์ฐจ๋จํ์ง ์์๋์ง ํ์ธํด์ผํฉ๋๋ค.
ํ์ @danbucholtz ์ iOS ํผ๋๋ฐฑ :
์์ ๋ด์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋์ง ์๋ ๊ฐ๋ณ ์ปจํธ๋กค (์ : ๊ฒ์ ์ ๋ ฅ)์์ "์ ์ถ"๋๋ "์ ๋ ฅ"์ ํค๋ณด๋ ๋ซ๊ธฐ๋ฅผ ์กฐ์ฌ ํ ์ ์์ต๋๊น?
ํ์ ์์ ์ ์ํ ํ ๋ ํค๋ณด๋๊ฐ ์ด๋ ค ์์ผ๋ฉด ์๋์ผ๋ก ๋ซํ๋๋ค. ์ค๋ฒ๋ ์ด์ ๊ด๋ จํ์ฌ์ด ๋์์ ๋ค์ ๊ฒํ ํด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ฌ์ ์ด๊ณ ํค๋ณด๋๋ฅผ ์ด์ด ๋ ๋ ๋ง์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ค๊ณ ์์ํ ์ ์์ต๋๋ค. ActionSheet, Alert, Loading, Modal, Popover, Picker ๋ฐ Toast๋ ๋ชจ๋ ์ ์์ ์ ์์ (์ : ์๊ฐ ์ ํ) ๋๋ ์๋ฃ๋ ์์ ์ ๋ํ ํผ๋๋ฐฑ (์์ ๋ฑ์ ์ ์ถ ๋๋ ์ ํจ์ฑ ๊ฒ์ฌ)์ ์๋ฏธํฉ๋๋ค. ์ค๋ฒ๋ ์ด๋ฅผ ์ฌ๋ ๊ฒฝ์ฐ ํค๋ณด๋๋ฅผ ๋ซ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
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
}
์ด ์ฝ๋๋ ์๋ํฉ๋๋ค (OPEN KYEBOARD)
<ion-footer>
<ion-toolbar>
<textarea></textarea>
</ion-footer>
</ion-toolbar>
๋์ด๋ ์ ๋ณํ์ง ๋ง ํฌ๊ธฐ๊ฐ ๋ณํ ๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
3.2.0์ด ๊ณต๊ฐ ๋ ๋๊น์ง ์ด๋ฌํ ํค๋ณด๋ ๋ฐ ์ ๋ ฅ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ค๋ฉด ์ด๋ฌํ ๊ตฌ์ฑ์ ๋ํ ๋ฌธ์๋ฅผ ๋ณด์ ํ๋ ๊ฒ์ด ์ ์ฉ ํ ์ ์์ต๋๋ค.
ํค๋ณด๋๊ฐ ์ ๋ ฅ์ ์จ๊ธฐ๋ ๊ฒฝ์ฐ์ ๊ด๋ จ๋ ์๋ฃจ์ ์ด ์์ต๋๊น?
app.component.ts์ ๋ค์ ์ฝ๋๋ iOS์ Android ๋ชจ๋์์ ํค๋ณด๋ ์์ ๋จธ๋ฌด๋ฅด๋ ๋ฐ๋ฅ ๊ธ ์ ๋ ฅ์ ์ํ๋ ํจ๊ณผ๋ฅผ ์์ฑํ์ต๋๋ค. ์ด๋ค ์ด์ ๋ก Android์ ์ํ ํ์ ์ค ์ค๋ฒ๋ ์ด ๋์์ ํค๋ณด๋๊ฐ ํค๋ณด๋ ๋์ด ์๋์์๋ ์ ๋ ฅ ์์๋ฅผ ์จ๊ธฐ๋ ๋ฐฉ์์ ์ํฅ์์ค๋๋ค.
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.
.
.
.
}
์คํฌ๋กค ํ ๋ ์ปค์๊ฐ ์ด์จ ํค๋๋ฅผ ์ฐจ๋จํ์ง ์์๋์ง ํ์ธํด์ผํฉ๋๋ค.
# 7047๋ ์์ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
์ด๊ฒ์ ์ค์ ๋ก ๋ธ๋ผ์ฐ์ ์์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ionic์ด ์ ๋ ฅ์ ์ค๋จ์ํค๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์์ต๋๊น, ์๋๋ฉด ๋ชจ๋ฐ์ผ์ ์ ๋ ฅ ํ๋์์ ์ด๊ฒ์ด ์ด๋ ค์ด ๋ฌธ์ ์ ๋๊น?
์ด ๋ด ์๋ฃจ์ ์ ์ ์๋ํฉ๋๋ค.
hideKeyboardAccessoryBar
์ true
this.keyboard.hideKeyboardAccessoryBar(true)
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()
}
}
<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>
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()
}
ํธ์ ๋ด์ ๊ฐ๊ธฐ ํ์ง๋ง Android์์ ํ ์คํธ ํ์ต๋๊น? ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@aspidvip์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@ lh4111 ๋น์ ์ ํด๊ฒฐ์ฑ
์ ๋ฌด์์
๋๊น? ํค๋ ์๋์ ์
๋ ฅ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๊น?
@kitkimwong ๋๋ ์๋๋ก์ด๋์์ ํ ์คํธํ์ง ์์์ง๋ง ์์น์ด ๋น์ทํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฟก ๋นต๋จ
this.keyboard.hideKeyboardAccessoryBar(true)
์ํด ์ ๊ณต ion-native/keyboard
ํPage
ion-content
padding-bottom์ ์ค์ ํ์ฌ ion-footer
๋ฅผ ํ์ํฉ๋๋ค.์ ์์ด ์ค๋ ฅ์ด ์ข์ง ์์ ์ดํดํด ์ฃผ์ จ์ผ๋ฉดํฉ๋๋ค
์ด์จ๋ ์ฌ๊ธฐ ์ฒซ ๋ฒ์งธ ์ค๋ ๋์์ ์ธ๊ธ ํ WKWebView ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ์๋๋ฉด UIWebView์ ๊ด๋ จ๋ ๋ชจ๋ ์๊ฒฌ์ ๋๊น?
@ jgw96 ๋ฐฉ๊ธ iOS ์ฅ์น์์ WKWebView๋ฅผ ํ ์คํธํ์ต๋๋ค. ๋๋ฅผ ์ํด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. ์ ๋ ฅ ํ๋๊ฐ ์์๋๋ก ํค๋ณด๋ ์์ ์ ์ ์ง๋์ง ์๊ณ ์ง์ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์น ๋์ ํ์๋ฉ๋๋ค. ์๋ ค์ง ๋ฌธ์ ์ ๋๊น?
์ด iOS ์ ์ฉ์ธ๊ฐ์? Android์์ ํ ์คํธํ์ง ์์์ง๋ง ์๋ํฉ๋๊น?
๋
น์:
https://1drv.ms/v/s!AqSDIyRRHLbYazFGbIPhOGLC4sA
Cordova CLI : 6.4.0
Ionic Framework ๋ฒ์ : 3.0.1
Ionic CLI ๋ฒ์ : 2.1.14
Ionic App Lib ๋ฒ์ : 2.1.7
Ionic App Scripts ๋ฒ์ : 1.3.0
ios-deploy ๋ฒ์ : 1.9.1
ios-sim ๋ฒ์ : 5.0.12
์ด์์ฒด์ : macOS Sierra
๋
ธ๋ ๋ฒ์ : v7.4.0
Xcode ๋ฒ์ : Xcode 8.3.2 ๋น๋ ๋ฒ์ 8E2002
๋ด ํ ์คํธ์์ @manucorporat FYI ์๋ ํ์ธ์. ์์ ๊ฒ์๋ฌผ ๋ฐ ๋ น์์ ์ฐธ์กฐํ์ญ์์ค. ์ ํฌ ์ฑ์ ๋ณธ์ง์ ์ผ๋ก ์ฑํ ์ฑ์ด๋ฏ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ์ ์๋ค๊ณ ์๊ฐํ๋์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
@ jgw96 @manucorporat ์ด ํ ์คํธ์ ์ํ์ brnach ์์ ์ฌํญ์ด ์ธ์ ํ๋ก๋์ ์ ์ ์ฉ ๋ ์ง์ ๋ํด ์๊ฒฌ์ ๋ณด๋ด ์ฃผ์๊ฒ ์ต๋๊น? ์๋๋ฉด ๋ฌด์์ํด์ผํ ๊น์? ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
@ jgw96 ์ด ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๊น? 3.3.0 ๋ง์ผ์คํค์ ๋์น ๊ฒ ๊ฐ์ต๋๋ค.
ํค๋ณด๋ ๋ฌธ์ ์ ๋ํ ๊ณต์์ ์ธ ์์ ์ฌํญ์ด ์์ต๋๊น? Ionic 1 ์ดํ๋ก ์์ ํ๋ ๊ฒ์ ๊ณ ํต์ค๋ฝ๊ณ ํค๋ณด๋๋งํผ ์ค์ํ ๊ฒ์ ๋ํ ๊ณต์์ ์ธ ์์ ์ฌํญ์ ์์ง ์์ต๋๋ค.
@nuvoPoint LoL, ํค๋ณด๋ ๋ฌธ์ ๋ ๊ฑฐ์ 1.5 ๋ ๋์ ์ง์๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋จ์ง ๋ฌธ์ ๋ฅผ ์ ๊ธ๋๋ค .. LOL ...
๊ทธ๋์ .. 1 ๋
์ ํค๋ณด๋ ๋ฌธ์ ๋ก ionic์ ํฌ๊ธฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ์ ํค๋ณด๋๊ฐ ๊ณ ์ณ ์ก๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ๊ธฐ๋ก ๋์ ์์ง๋ง ๋ณด์๋ค์ํผ ์ฌํด๋ ์๋ฌด๋ฐ ์ง์ ์ด ์์ต๋๋ค. :)
๋จ์ํ ์ฑ ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ ๋ผํด๋ ๊ณต์์ ์ธ ์์ ์ ์ํ์ง ์๋ ๊ฒ ๊ฐ๋ค !! ์ฑํ ์ฑ์ ๊ตฌ์ถํ๋ ค๋ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์๊ฒ๋ฉ๋๋ค. ์ ๋ ฅ ์์ ๋ ์ฌ์ฉ์์ ์ํธ ์์ฉํ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์์ ๋๋ค.์ด ๋ฌธ์ ๋ IONIC๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์ ๋ณด ์ฑ ์ ๊ตฌ์ถํ๋ ๋ฐ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ด๊ฒ์ด ์ด์จ์ ์์น ...? LOL. ๋ชจ๋ฅด๊ฒ ์ด์.
ํฌ๋ผ์์ ํ ๋ก ์ ๋ณด๋ฉด ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋์ผํ ๋ฌธ์ ์ ๋ต๋ณ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Ionic์ ์ฌ์ฉํ์ฌ ์ฑํ
์ฑ๊ณผ ๊ฐ์ ๊ฐ๋จํ ๋ค์ดํฐ๋ธ๋ฅผ ๋น๋ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ฌ๋ฌ๋ถ, ํค๋ณด๋ ์์ ์ด ์งํ ์ค์ด๋ฉฐ ํ ์คํธํ๋ ค๋ ๊ฒฝ์ฐ wk ์ฉ cordova ํ๋ฌ๊ทธ์ธ์ ํด๋น ๋ถ๊ธฐ๊ฐ ์์ต๋๋ค.
cordova plugin add https://github.com/driftyco/cordova-plugin-wkwebview-engine.git#keyboard-fixes --save
๋ค์์ ํ์ฌ ์์ ์ฌํญ์ ๋๋ค. https://github.com/ionic-team/cordova-plugin-wkwebview-engine/pull/131
์ค์น๋ฅผ ์๋ํ๊ณ ๋ ๋์์ง ์๋์ง ํ์ธํ์ญ์์ค. ํ์ ํผ๋๋ฐฑ์ ์ฐพ๊ณ ์์ต๋๋ค
ํธ์ง :
@AmitMY ํผ๋๋ฐฑ์ ์ด๋ป๊ฒ ๊ฒ์ ํ์๊ฒ ์ต๋๊น? ์ด ์ค๋ ๋์์?
๋ด iOS ์ฅ์น์์ WKWebView๋ฅผ ํ ์คํธํ์ต๋๋ค. ๋๋ฅผ ์ํด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
ํ์ฌ ์ด์:
์
๋ ฅ ํ๋๊ฐ ์์๋๋ก ํค๋ณด๋ ์์ ์ ์ ์ง๋์ง ์๊ณ ์ง์ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์น ๋์ ํ์๋ฉ๋๋ค. ์๋ ค์ง ๋ฌธ์ ์
๋๊น?
๋
น์:
https://1drv.ms/v/s!AqSDIyRRHLbYazFGbIPhOGLC4sA
๊ธ๋ก๋ฒ ํจํค์ง :
@ ionic / cli-utils : 1.2.0
Cordova CLI : 7.0.1
Ionic CLI : 3.2.0
๋ก์ปฌ ํจํค์ง :
@ ionic / app-scripts : 1.3.7
@ ionic / cli-plugin-cordova : 1.2.1
@ ionic / cli-plugin-ionic-angular : 1.2.0
Cordova ํ๋ซํผ : ios 4.4.0
Ionic Framework : ์ด์จ ๊ฐ๋ 3.0.1
์ฒด๊ณ:
๋
ธ๋ : v7.4.0
OS : macOS Sierra
Xcode : Xcode 8.3.2 ๋น๋ ๋ฒ์ 8E2002
ios-deploy : 1.9.1
ios-sim : 5.0.12
@jrmcdona ์ฌ๊ธฐ์ ํผ๋๋ฐฑ์ ๊ฒ์ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. @manucorporat ๋ ๊ทธ๊ฐ ํ ์์์ ๋ ๊ทธ๊ฒ์ ๋ณผ ๊ฒ์
๋๋ค
๊ฐ๋ฅํ ํ ์ ๋ฌธ์ ์ผ๋ก ์ ์งํ๋๋ก ๋
ธ๋ ฅํ์ญ์์ค. ์๋ฅผ ๋ค์ด ๋น๋์ค๊ฐ ์๋ค๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ๋น๋์ค์์ ๋ฌด์์ด ์๋ชป๋์๋์ง ์ค๋ช
ํ์ญ์์ค (๋งค๋ฒ ๋
นํ๋ฌผ์ ๋ณด์ง ์๊ณ ๋ ๋ฌธ์ ๋ฅผ ์ถ์ ํ ์ ์์).
ํญ ๋ฐ ํค๋ณด๋ ์ด๊ธฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ ํฌ๋ง์ด ์์ต๋๊น?
@ Floyd1256 ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฌ๊ธฐ์ ์ฐ๊ฒฐํ์ญ์์ค. ์ด ์ ์ฒด ์ค๋ ๋๋ ์๋ง๋ ๋ค์ ์ฃผ ๋ง์ ๊ฒํ ๋ ๊ฒ์ด๋ฉฐ ํผ๋๋ฐฑ์ ๋ฐ๋ผ ์์ ๋ ๊ฒ์ ๋๋ค.
ionic ์ฑ์ ์ฑํ
๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
๋ด ํ๋ก์ ํธ์์ cordova-plugin-wkwebview-engine.git # keyboard-fixes๋ฅผ ํ
์คํธํ์ผ๋ฉฐ ํฐ ๊ฐ์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค.
ํ์ง๋ง ์ฌ์ ํ ๊ธฐ๋ณธ ํค๋ณด๋ ๊ด๋ฆฌ์ ๋น๊ตํ ๋ ํ ์์๋ ์ผ์ด ์์ต๋๋ค.
๋ด ์ฐธ์กฐ๋ ๋ด ์ ํ์ ๋ฉ์์ง ๊ธฐ๋ฅ์ด์ง๋ง ๊ฐ์ฅ ์ ์๋ ค์ง ์ฑํ
์ฑ์ ๊ฒฝ์ฐ์ ๋์ผํฉ๋๋ค.
์ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ํด๋ฆญํ๋ฉด ํค๋ณด๋๊ฐ ๋ํ๋๊ณ ํ๋จ ๊ณ ์ ์
๋ ฅ ํ
์คํธ์ ๋ง์ง๋ง ๋ฉ์์ง๋ฅผ ํธ์ํ์ง๋ง ์๋จ ๊ณ ์ ํค๋๊ฐ ์๋๋๋ค.
ํธ์ ์ ๋๋ฉ์ด์
์ ๋งค๋๋ฝ๊ณ ์ ๋ฉ์์ง๋ฅผ ์
๋ ฅํด๋ ๋ง์ง๋ง ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ด๋ค ์ ํ๋ก๋ SMS๋ฅผ ์์ฑํ๊ณ ๋ณด๋ด์ญ์์ค.
Android, iOS ๋ฐ Windows ์ฅ์น์์ ์ด์จ ํค๋ณด๋๋ก ๋์ผํ ๋์์ํ๊ณ ์ถ์ต๋๋ค.
ํ์ฌ ์ด์จ ํค๋ณด๋์์ ํธ์ ์ ๋๋ฉ์ด์
์ ๋ถ์์ ํ๊ณ ํค๋ณด๋๋ ํ๋จ ๊ณ ์ ์
๋ ฅ์ ํธ์ํ์ง๋ง ๋ง์ง๋ง ๋ฉ์์ง๋ฅผ ๋ฎ์ต๋๋ค (๋ชจ๋ ์ฅ์น์์).
ํ
์คํธ๋ฅผ ์ํด ์ด์จ ๋ฐ๋ฅ ๊ธ์ ํ
์คํธ ์
๋ ฅ์ ์ถ๊ฐํ๊ณ ํ
์คํธ๋ฅผ ์
๋ ฅํ์ญ์์ค.
๋ฌธ์ ๋ ํฌ์ง ๋ง ์ต์ข
์ฌ์ฉ์๋ ํค๋ณด๋๋ฅผ์๋ ๊ทธ๋๋ก ๋ฐ์ ๋ค์ผ ์ ์์ผ๋ฉฐ ๊ธฐ๋ณธ ํค๋ณด๋์์ ์ฐจ์ด๋ ๋
ธ๊ณจ์ ์
๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ํ๋ฅญํ ์ด์จ ํ๋ ์ ์ํฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค๊ณ ํค๋ณด๋๊ฐ ํญ ์๋ก ๋ํ๋ ๋ ํฌ๊ธฐ ์กฐ์ ์ ๋นํ์ฑํํ๋ ๊ธฐ๋ฅ์ด ๋ํ๋์ง ์์์ต๋๋ค! ๋๋ ํค๋ณด๋๊ฐ ํ์ ๋ ๋ ํญ ๋ชจ์์ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค.
์ต๊ทผ์ ์์ผ๋ก ์คํฌ๋กค ์ฌ๋ผ์ง
๋ฉ์ธ ์น๋ทฐ ์์ ์ค์ฒฉ ์น๋ทฐ๋ฅผ ์ถ๊ฐํ์ฌ์ด ๋ฌธ์ ์ ๋ํ ํฅ๋ฏธ๋ก์ด ๋์์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๋ UI๋ฅผ 2 ๊ฐ์ ๋ ์ด์ด๋ก ๋ถ๋ฆฌ ํ ์ โโ์์ต๋๋ค. ํ๋๋ ๋ฉ์ธ ์ฝํ
์ธ ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ํค๋ณด๋์ ๋๊ธฐํํด์ผํ๋ UI ์ฉ์
๋๋ค.
@ Khalid-Nowaf๋ ํค๋ณด๋๊ฐ ์ฌ๋ผ๊ฐ ๋์ด ๋์์ธ์์ ๋ฉ์ธ ๋ทฐ๋ฅผ ๋ฐ์ด ๋ถ์ด์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฑํ ์๋๋ฆฌ์ค ๋๋ SMS์์ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ์ํํ๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด iOS SMS์์๋ ๋ฉ์์ง๊ฐ ํ ์คํธ ์์์ ํจ๊ป ๋งค์ฐ ๋งค๋๋ฝ๊ฒ ํธ์๋์ด ํญ์ ๋ง์ง๋ง์ผ๋ก ๋ณด๋ธ ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ ์คํธ๋ฅผ ์ ๋ ฅ ํ ํ ํค๋ณด๋๊ฐ ๋จ์ด์ง์ง ์๊ณ ๊ณ์ ์ ๋ ฅํ๊ณ ๋๊ฐ ๋๊น์ง ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด์จ ๋์์ธ์ด iOS์ Android๋ฅผ ๋ชจ๋ฐฉํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค (ํ์ง๋ง Android๋ฅผ ์ฌ์ฉํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ Android์ ๋ํด ๋งํ ์๋ ์์ง๋ง). ๋๋ ๋ํ ๊ฐ๋ฐ ๊ด์ ์์ ๊ทธ๊ฒ์ด ์ผ์ด๋๋๋ก ๋ง๋๋ ๋ณต์ก์ฑ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด์ง๋ง ๊ทธ๊ฒ์ด ๋ ๊ฐ๊น์์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. WKWebView๋ก ํฌ๊ฒ ๊ฐ์ ๋์์ต๋๋ค.
์ด์ ํค๋ณด๋์ ์ฃผ์ ๋ฌธ์ ์ธ @jrmcdona ๋ ํค๋ณด๋๋ก ๋ฐ๋ฅ ๊ธ์ ๋ถ๋๋ฝ๊ฒ ์คํฌ๋กคํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ํ์ฌ ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ๊ณผ ์น ๋ทฐ๊ฐ ์๋ก ์ด๋ฒคํธ๋ฅผ ๋ณด๋ด๋ ค๊ณ ํ๋ฏ๋ก ์ ๋๋ฉ์ด์ ๊ณผ ํฌ๊ธฐ ์กฐ์ ..etc๋ฅผ ๊ด๋ฆฌ ํ ์ โโ์์ผ๋ฉฐ ์๋ก ๋๊ธฐํํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๋๋ก๋ ํค๋ณด๋๊ฐ webview ์ ๋๋ฉ์ด์ ๋ณด๋ค ๋น ๋ฆ ๋๋ค. ๊ทธ๋์ ์ ๊ฐ ์ฌ๊ธฐ์ ๋ค๋ฃจ๊ณ ์ํ๋ ๊ฒ์ ๋ฉ์ธ ๋ทฐ ์์ ๋ ๋ฒ์งธ ์น๋ทฐ๋ฅผ ์ฝ์ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํค๋ณด๋๋ ๊ทธ๊ฒ์ ๋ฐ์ด ์ฌ๋ฆด ๊ฒ์ด๊ณ , ๋ฉ์ธ ์น ๋ทฐ๋ "๊ฐ๋ฐ์๊ฐ ์ํ๋ ๊ฒ์ ์์กด"ํ์ง ์๊ณ ์คํฌ๋กค ํ ์์๋ ์ต์ ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๋ฉ์ธ ๋ทฐ๋ฅผ ์คํฌ๋กคํ๋ ๊ฒ์ ์ด์ ๋ฌธ์ ๊ฐ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ ์ฑํ ์ฑ์ ๋ชจ๋ ๊ฒ์ด ํ๋์ ๋ ์ด์ด์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ฅ ๋ง์ด ๋ง๋๋ ๊ฒ์ ๋๋ค.
ํฌ๋ผ์ ์ผ๋ถ๋ ํค๋ณด๋ ๋ฌธ์ ๋ฅผ ์๋ฒฝํ๊ฒ ์์ ํ ํ๋ฅญํ ํ๋ฌ๊ทธ์ธ์ด ์๋ค๊ณ ๋งํฉ๋๋ค.
https://github.com/EddyVerbruggen/cordova-plugin-native-keyboard
๋์ ์์์์ด ํ๋ฌ๊ทธ์ธ์ด ์ ๋ฃ๋ผ๋ ๊ฒ์
๋๋ค.
๋ํ ionic์ "๊ณ ์ ๋ ํค๋ณด๋ ๋ถ๊ธฐ"๋ฅผ ํ ์คํธํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ฌ์ ํ ํฐ ๋ฌธ์ ์ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ด ์์ต๋๋ค.
@kitkimwong ์์ฐ, ๊ฝค ๋น์ธ๋ค๋ ์ฌ์ค์ ์ ์ธํ๊ณ ๋ ์ข์ ๋ณด์ ๋๋ค (ํนํ ์ด์จ์ด ๋ฌด๋ฃ๋ผ๋ ์ฌ์ค). @manucorporat ๋น์ ์ ํ์คํ ๊ทธ๊ฒ์ ๋ด์ผํฉ๋๋ค
ํด๋น ํ๋ฌ๊ทธ์ธ์ ionic ๋ฌธ์์ ๋์ด๋์ด ์์ต๋๋ค. ๋๋ ์ค๋ ๊ทธ๊ฒ์ ์๋ํ๊ณ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์งํ๋๋์ง ๋ณผ ๊ฒ์
๋๋ค. 200 ๋ฌ๋ฌ๋ ๋ด๊ฐ ์๊ฐํ๊ธฐ์ ์ผ๋ถ ํ์ฌ์ ๊ทธ๋ ๊ฒ ๋น์ธ์ง ์์ต๋๋ค. ๋ ์๊ฐ์ ๊ฐ๋ฐ์ ์๊ฐ์ด ๊ทธ ๋น์ฉ์ ์ง๋ถ ํ ๊ฒ์ด๋ฉฐ ํ๋ฌ๊ทธ์ธ์์ด ํค๋ณด๋๋ฅผ ์๋ง์ผ๋ก ๋ง๋๋ ๋ฐ ๋ช ์๊ฐ์ ๋ณด๋ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
http://ionicframework.com/docs/native/native-keyboard/ ์คํดํ์ง ๋ง์ญ์์ค. ์ง๋ถํ์ง ์๊ฒ ์ต๋๋ค.
repo ๋งํฌ : https://github.com/Khalid-Nowaf/ionic-keyboard
๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ํํด์ผ ํ ๋ชจ๋ ๊ฒ
sh
ionic cordova run ios --prod
ionic cordova run android --prod
ํค๋ณด๋ ์ต์ ์ผ๋ก ์ค์ ์ ๋ ฅ ํ๋๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจํ๋ ๊ฒ์ด ์์ด๋์ด์ผ๊น์? ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ ์ถฉ๋ถํ ๋น ๋ฅด์ง ์์ DOM ๋ ๋๋ง์ ์์กดํ์ง ์์ ๊ฒ์ด๋ฉฐ ํค๋ณด๋์ ์ ๋ ฅ์ ๋ถ์ด๋ ๊ฒ์ด ๊ตฌํํ๊ธฐ ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.
"๋ง์น๊ฐ ์์ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ชป์ฒ๋ผ ๋ณด์ธ๋ค"๋ผ๋ ์๋ง์ด ๋ ์ค๋ฅธ๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ ์ฒด์ ๋ํด ๋ค๋ฅด๊ฒ ์ ๊ทผํด์ผ ํ ์๋ ์์ต๋๋ค.
@larssn ์ ์ ๋ฃ ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ดํ๋ ์ผ์ ๋๋ค. ๊ทธ๋์ ์ข์ ์ ํ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@jrmcdona ๊ด์ฐฎ์ ์๋ ์์ต๋๋ค. ์คํ๋ ค 100 % ์๋ํ๋ ์ฌ๋ด ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค. ๊ณผ๊ฑฐ์ ๋๋ ํ์ ๋ ์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ์ ์์กดํ๊ฒ๋์๊ณ ์ด๋ฅผ ์ ์งํ๋ ๊ฒ์ ์์ ์ ๋ชฝ์ด์์ต๋๋ค.
@larssn ์ ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ์ ์ํ์ง ์์์ต๋๋ค. ionic์ ๋ํ ๊ทํ์ ์์ด๋์ด๋ฅผ ์ ์ํ ๊ฒ์ ๊ทธ ๋์์ธ์ด ์ข๊ฒ ๋ค๋ฆฌ๋ฉฐ ํ๋ฌ๊ทธ์ธ์ดํ๋ ์ผ์ด๊ธฐ๋ํฉ๋๋ค.
ํ์ฌ ํค๋ณด๋ ๋ฌธ์ ์ ๋ํด ionic ํ์ผ๋ก๋ถํฐ ํผ๋๋ฐฑ์๋ฐ์ ๋๊น์ง-๋๊ตฐ๊ฐ ์ ๋ฃ ํ๋ฌ๊ทธ์ธ์ ํ ์คํธํ๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์ ์ ์ฅ์๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ์ด์ ๋ก ์ฒ์์ ํค๋ณด๋๋ฅผ ํ์ ํ ์ ์์ต๋๋ค. ์ค๋ฅธ์ชฝ ์๋จ์์๋ ํ ๊ธ์ ํด๋ฆญํด์ผ ๋ํ๋ฉ๋๋ค. ํ์ด์ง๊ฐ๋ก๋ ๋ ๋ ํ์๋์ง ์๋ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ๋ฐ๋ชจ์ฒ๋ผ.
๋๋ฅผ ์ํด ์ผํ ์๋ฃจ์ :
input
๋์ ion-input
@SoldierCorp ๋น์ ์ ์ ๊ณต๋๋ WkWebView ํ ์คํธ ๋ถ๊ธฐ ionic์์ ์๋ฏธํฉ๋๊น? ์๋๋ฉด UIWebView?
@jrmcdona ๊ตฌ์ฑ ์์์ ํ ํ๋ฆฟ์์ html ์์ ์์ฒด.
์ด ์ฃผ์ ์ ๋ํ ๋ชจ๋ ์๊ฒฌ๊ณผ ๊ธฐ๋๋ฅผ ๊ณ ๋ คํ์ฌ
ํค๋ณด๋์ ์
๋ ฅ ํ
์คํธ๋ฅผ ํฌํจํ ์ ์ฉ ์ฑํ
๊ตฌ์ฑ ์์? ์ผ๋ฐ ๊ฐ๋ฐ์๊ฐ ๋ง๋๋ ๊ฒ์ ๋๋ฌด ์ด๋ ต๊ณ , ์ ๋ง ํ๋ฅญํด ๋ณด์ด์ง๋ง ์จ๋ ํํฐ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ต๋ตํ ๊ฒ์
๋๋ค.
100 % ๋์ํฉ๋๋ค. ๊ทธ๋ค์ด ์ง๋ฉด ํ ํน์ ๋ณต์ก์ฑ์ผ๋ก ์ธํด ๋ฌ์ฑ ํ ์์๋ ๊ฒฝ์ฐ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค.
@AmitMY @manucorporat WKWebView ํ
์คํธ ๋ถ๊ธฐ์ ๊ด๋ จํ์ฌ. ๋ณด๋ด๊ธฐ๋ฅผ ๋๋ฅธ ํ ํค๋ณด๋๊ฐ ๋ซํ์ง ์์์ผํ๋ค๊ณ ๋ฏฟ์ผ์ญ์์ค.
iOS์์ SMS ๋ํ ์ค์ ๋ณผ ์์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ๋์์ ์ํ์ง ์๋ ๊ฒฝ์ฐ ํค๋ณด๋ ๋ซ๊ธฐ ๋ฉ์๋๋ฅผ ํธ์ถ ํ ์ ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ํค๋ณด๋๊ฐ ์์๋๋ก ํ์ง ์๊ณ ์ฑํ
์๋๋ฆฌ์ค ์ค์ ๋ฉ์์ง๋ฅผ ํ๋ค๋ฆด ์ ์๋๋ก ์ด๋ ค ์์ด์ผํฉ๋๋ค.
์ด ์ง์ ์ ์ํ๋ ๋ฌด์์ ๋๊น? ํค๋ณด๋์ ๋ํ ์ต์ ๋ด์ค๋ฅผ ๋ณผ ์ ์์ต๋๊น? ํธ์ ๋ด์ ๊ฐ๊ธฐ
@jrmcdona ๋ง์คํฐ ์ ๋ณํฉ๋์์ต๋๋ค.
[email protected]
์ข์์! ๐๐ผ
@manucorporat ๊ทธ ๋น๋๋ฅผ ์ป๊ธฐ ์ํด npm์ด [email protected] ๋ฅผ ์ค์นํฉ๋๊น?
๋๋ ๊ทธ๊ฒ์ ์๋ํ์ง๋ง ์ ํจํ์ง ์์์ต๋๋ค. ๋ด๊ฐ ํ
์คํธํ๊ธฐ๋ฅผ ์ํ๋ ๋น๋๋ฅผ ์ ์ธํ๊ณ ๋ ๊ทธ๊ฒ์ ์ป๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@jrmcdona ๋ npm v ionic-angular versions --json
๋ฅผ ์คํํ์ฌ ์ด๋ค ๋ฒ์ ์ด ๊ฒ์๋์๋์ง ํ์ธํฉ๋๋ค.
๋ฟก๋ฟก
npm install ionic-angular<strong i="7">@nightly</strong>
@manucorporat ๊ฐ์ฌ
<plugin name="cordova-plugin-wkwebview-engine" spec="^1.1.3" />
๊ทธ๋ฐ ๋ค์ ์ผ๊ฐ์ ์ค์นํ ์ ์๋๋ก Angular๋ฅผ 4.1.3์ผ๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค.
์์ง ํฉ๊ธ ์๊ฐ๋๊ฐ ์์ง ์ค๋น๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. WKWebView ํ ์คํธ ๋ถ๊ธฐ๋ ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒ๋ณด๋ค ๋ ์ ์๋ํ์ต๋๋ค. ์ด ๋ฒ์ ์์๋ ์ ๋ ฅ ์์๊ฐ ์ ํ ์ฌ๋ผ๊ฐ์ง ์์ต๋๋ค. ์ ๋ ฅ์ด์๋ ํค๋ณด๋ ๋ง. ํ ์คํธ ๋ธ๋์น์์ ํค๋ณด๋๋ ์ฌ๋ผ๊ฐ์ง ๋ง ์ฝ๊ฐ ์ง์ฐ๋ฉ๋๋ค. ์ด์์ ์ด์ง๋ ์์ง๋ง ์์ ๊ฐ๋ฅํฉ๋๋ค.
๋๊ตฌ๋ ์ง ์ ์๋ํ๋ ํค๋ณด๋์ ์์ ์ ์ฅ์๊ฐ ์์ต๋๊น?
์ด๊ฒ์ ์๋ ค์ง ๋ฌธ์ ์
๋๊น? ์๋ ค์ง ๋ฌธ์ ๋ชฉ๋ก์ด ์์ต๋๊น?
์๋ก์ด ์ด์๋ฅผ ๊ธฐ๋กํด์ผํฉ๋๊น?
์ฌ๊ธฐ์ ๋น๋์ค๊ฐ ์์ต๋๋ค.
https://1drv.ms/v/s!AnyXOztVClZYbfswP -UEtaHEU0I
๋ค์์ ์ฝ๋์ ๋๋ค.
<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>
๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค
@jrmcdona ์, ์์ง ์ถ์๋์ง ์์์ต๋๋ค. ์ ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ ์ค๋น ์ค์ ๋๋ค.
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
์ฆ๊ฑฐ์! ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ค์ฃผ์ธ์
์๋
ํ์ธ์.
3.4 ๋ฒ์ ์ ์์ง ๊ฒ์๋์ง ์์์ต๋๋ค.
Nightly ๋ฐ ์ต๊ทผ์ ๊ฒ์ ๋ ๋ค๋ฅธ ๋ฒ์ ์ ์ ํจํ์ง ์์์ ์คํจํฉ๋๋ค. ์คํฌ๋ฆฐ ์ท๋ณด๊ธฐ
@jrmcdona node_module ์ ์ ๊ฑฐํ๊ณ npm install์ ๋ค์ ์คํ ํด ๋ณด์์ต๋๊น? --save in ionic-angular @ nightly ๋ฅผ ์ฌ์ฉํด์ผ
๊ทธ๋ฌ๋ 3.4๊ฐ ์ค๋ ์ถ์ ๋ ์์ ์ ๋๋ค.
@manucorporat UI๊ฐ ์ฌ๊ธฐ์ ๊ฝค ์ข์
ํ์ / ์จ๊ธฐ๊ธฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ํ๊ธฐ ์ํด ํค๋ณด๋๋ฅผ ์ฑ์ผ๋ก ๊ฐ์ ธ ์ค๋ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
(์ : '@ ionic-native / keyboard'์์ {ํค๋ณด๋} ๊ฐ์ ธ ์ค๊ธฐ;)
๋ณด๋ด๊ธฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํค๋ณด๋๊ฐ ์๋์ผ๋ก ๋ซํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. iOS SMS๊ฐ ์๋ํ๋ ๊ฒ์ฒ๋ผ ํค๋ณด๋๊ฐ ์ด๋ ค ์์ต๋๊น?
์ฌ๊ธฐ ๋
น์์ด ์์ต๋๋ค.
https://1drv.ms/v/s!AnyXOztVClZYcY3vYXiXYaAZNdE
ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ ์์ฒด์ ์ ๋ ฅ์ ํฌํจํ๊ณ ์ฅ์น ์ ํ์ ๋ฐ๋ผ ์คํ์ผ์ ์ง์ ํด ๋ณธ ์ ์ด ์๋์ง ๊ถ๊ธํ์ญ๋๊น?
์ ํ์ด์ ๋ง๋!
@manucorporat ์ ๋ง ๋๋จํ ๊ฐ์ ์ฌํญ์ ๋๋ค. ํค๋ณด๋๊ฐ ์ด๋ ค ์๊ณ ์ ๋ ฅ ํ ์คํธ๊ฐ ํ๋จ ๊ณ ์ ๋์์ ๋ ๋ง์ง๋ง ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์๋๋ก ์ฝํ ์ธ ๋ฅผ ํธ์ํ๋ ์ต์ (ํค๋ ์ ์ธ)์ ์ถ๊ฐ ํ ์ ์์ต๋๊น?
ํค๋ณด๋๊ฐ ์๋ํ๋ ค๋ฉด ์ด๋ค ํ๋ฌ๊ทธ์ธ์ ์ค์นํด์ผํฉ๋๊น?
@aspidvip Manu๋ ๋ช ๊ฐ์ ๊ฒ์๋ฌผ์ ๋ค์ ์ธ๊ธํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ณต์ฌํ๊ฒ ์ต๋๋ค.
CLI๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
npm install -g ionic
๋ฐค๋ง๋ค ์ด์จ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ธ์.์ต์ WK ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ญ์์ค.
ionic-keyboard-plugin ์ ๊ฑฐ : SUPER IMPORTANT STEP !!!!
์ ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ ์ค์นํฉ๋๋ค.
ionic cordova ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ https://github.com/ionic-team/cordova-plugin-keyboard --save
์ ํ๋ฌ๊ทธ์ธ ํค๋ณด๋์ ์ก์ธ์คํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
ํค๋ณด๋๊ฐ div์ ์์์ผ๋ก ์ถ๊ฐ๋๋ฉด ์ข์ต๋๋ค. ~
ํค๋ณด๋ ์์ ์งํ ์ํฉ์ ์ด๋ป์ต๋๊น?
ํ์์ ์ธ ์ํ @manucorporat . ๋ฐฉ๊ธ 3.2์์ 3.5 ์ผ๊ฐ (@ 3.5.3-201707261447)์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋๋ฐ ๋ด ์ฑ์์ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ์์์์ ์๋ ํ๋๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ ์ด ๋ชจ๋ ์์ ์ ๋ณด์ฌ์ฃผ๋ ์ฑ ๋ฐ๋ชจ๋ฅผ ๊ฒ์ํ๋ฉด๋ฉ๋๋ค. ๊ด์ฌ์ด ์๋ค๋ฉด ์ฃผ๋ง ๋์ ๋ ธ๋ ฅํ๊ณ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
@manucorporat์ ๋ชจ๋ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! (๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํ ์คํธ ํ ๋ชจ๋ ์ฌ๋๋ค๋).
@ Peege151 ๋๋ ์ด๊ฒ์ ์ฑ ๋ฐ๋ชจ์ ํ์คํ ๊ด์ฌ์ด ์์ต๋๋ค. ์ฑํ ์ ์ํด ๋ด ์ฑ์ ํค๋ณด๋๋ฅผ ํตํฉํ๋ ์์ ์ ์ด๋ฅด๋ ์ผ๋ฏ๋ก ์ค๋น๊ฐ๋๋ฉด ์ฒ ์ ํ ํ ์คํธ๋ฅผ ์ํํ๊ณ ์ฌ๊ธฐ๋ก ๋ค์๋ณด๊ณ ํ ์ ์์ต๋๋ค.
@ Peege151 ์ฑ ๋ฐ๋ชจ๋ฅผ๋ณด๊ณ ์ถ์ต๋๋ค!
์ข์, ์ด๊ฒ์ ์ถฉ๊ฒฉ์ผ๋ก ์ฌ ์ ์์ง๋ง ์์ง Ionic 2.2.1์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ํ์ฌ๋ก์๋ ๊ฐ๋นํ ์์๋ ์๋ก์ด ๋ฒ๊ทธ๊ฐ ๋์
๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ต์ ๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค.
์ด https://github.com/driftyco/cordova-plugin-wkwebview-engine.git#keyboard -fixes๊ฐ ์๋ํ๋ ๊ฒ ๊ฐ์ง๋ง iOS์์ "๋ ๋ง์ ์์
์ด ์คํ ๋ ํ ์์ฝ๋์์ต๋๋ค"๋ผ๋ ์ค๋ฅ์ ํจ๊ป ์ฌ์ ํ ์ฑ์ด ์ถฉ๋ ํ ๊น๋ด ๊ฑฑ์ ๋ฉ๋๋ค. .
Ionic 2.2.1๊ณผ ํจ๊ป https://github.com/driftyco/cordova-plugin-wkwebview-engine.git ์ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ด๋ค ๊ธฐํ?
๊ทธ๋์ Ionic 2.2.1๊ณผ ํจ๊ป์ด ํ๋ฌ๊ทธ์ธ 1.1.3์ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์๋ํ๊ณ github repo์ ์ง์นจ์ ๋ฐ๋ผ ์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ ionic-plugin-keyboard๋ฅผ ์ ๊ฑฐํ์ต๋๋ค ( @manucorporat ๊ฐ ๊ทธ์ ์๊ฒฌ์์ ์๋ฏธํ๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ์ต๋๋ค)- ํ๋ฌ๊ทธ์ธ์ ๋ํ npm ์ค์น๋ฅผ ์ํํ๊ณ ์ฑ์ ๋น๋ํ๊ณ ์๋ํ์ต๋๋ค.
iOS ๋ฒ์ 10 ์ด์์ด ์ค์น๋ iOS ์๋ฎฌ๋ ์ดํฐ์์ ์์๋๋ก ๋ฌธ์ ์์ด ์๋ํ๋ฉฐ ์ถฉ๋์ด ๋ฐ์ํ์ง ์์์ต๋๋ค. ๋๋ ์ฌ์ ํ ์ค์ ์ ํ์์ ์๋ํด์ผํฉ๋๋ค (์ด์ ์๋ ์ฌ๊ธฐ์์ ์๋ฃจ์
์ ์ฌ์ฉํ ๋ ๋ด ์ฑ์ด ์ถฉ๋ํ์ต๋๋ค https://stackoverflow.com/questions/36706398/in-ionic-2-how-to-float-an-element-above- ํค๋ณด๋๊ฐ ํ์ ๋ ๋ ํค๋ณด๋ ํ์ / 36804830 # 36804830)
์ฌ๋ผ์ง๋ ํค๋ณด๋์ ๋ํ ํ, ์ด๊ฒ์ ๋ฒํผ์ ์ถ๊ฐ
(mousedown)="$event.preventDefault()"
ํฌํจ ๋ config.xml
<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/*"/>
๋๊ตฌ๋ ์ง ๋์ธ ์ ์๋ค๋ฉด ์ธ ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค.
1- ionic-plugin-keyboard๋ฅผ ์ ๊ฑฐํ ํ์๋ Android์์ ๊ณ์ ์ ์์ ์ผ๋ก ์๋ํฉ๋๊น?
2- <allow-navigation href="http://localhost:8080/*"/>
๋ง์ต๋๊น? localhost : 8080 ?
3- config.xml์์ ์๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํด์ผํฉ๋๊น?
<feature name="Keyboard">
<param name="ios-package" onload="true" value="IonicKeyboard"/>
</feature>
Android์ ๋ฌธ์ ๊ฐ์๋ ๊ฒฝ์ฐ thiw๊ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ionic config.xml์์ 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>
์ด๋ ๊ฒํ๋ฉด ํค๋ณด๋๊ฐ ๋ชจ๋ ๊ฒ์ ๋ฐ์ด ์ฌ๋ฆฌ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ฝํ ์ธ ์ ํค๋ณด๋๋ฅผ ๊ฐ๋จํ ์ค๋ฒ๋ ์ดํฉ๋๋ค. ๋ฐ๋ผ์ ๋์์ iOS ํค๋ณด๋์ ๋์ผํ๊ฑฐ๋ ์ ์ฌํฉ๋๋ค.
@Jatapiaro ๋ณด๊ธฐ ํ๋จ์ ์ ๋ ฅ์ด์์ ๋ ์ ์๋ํ์ง ์๊ณ ํค๋ณด๋๊ฐ์ด๋ฅผ ์จ๊ธฐ๊ณ ์ ๋ ฅ์ค์ธ ๋ด์ฉ์ ๋ณผ ์ ์์ต๋๋ค.
Ionic์ด ์ฑํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ์ฅ ์ ํฉํ ๊ณณ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ ๋๋ก ํ ์ ์์๊ณ ๋ชจ๋ ๊ฒ์๋ฌผ๊ณผ ๋๊ธ์์ ๋ช ๋ ๋์ ์ด๋ ค์์ ๊ฒช์๋ค ๊ณ ๋ฏฟ์ต๋๋ค. ์ ๊ฐ์ธ์ ์ธ ์๊ฒฌ์ ๋๋ค. ์ฌ๋๋ค์ ์ ๋ง๋ก ๋์ธ ์์๋ ios์ ์๋๋ก์ด๋์์ ionic ์ฉ ์ํ ์๋ ์ฑํ ์ฑ์ด ์๋ค๋ฉด.
@jrmcdona https://github.com/EddyVerbruggen/cordova-plugin-native-keyboard ๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น ?
์, ์ค์ ๋ก ์ฐ๋ฆฌ๋ ๊ทธ ๋น์ฉ์ ์ง๋ถํ๊ณ ๊ฝค ์ข์์ต๋๋ค! ๊ทธ๊ฒ์ ๊ทธ๊ฒ์ ๊ฐ๋นํ ์์๋ ์ฌ๋๋ค์์ํ ์ต์ ์ ๊ธธ์ผ ๊ฒ์ ๋๋ค. ์ด์จ๋ ๋ด ๊ฒฝํ์.
EddyVerbruggen ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ ์ด๋๊ฐ์ Max Lynch๋์ด ํ๋ฌ๊ทธ์ธ์ Ionic ์ฑํ ํจํค์ง์ ์ผ๋ถ๋ก ๋ง๋๋ ๊ฒ์ ์ธ๊ธํ์ต๋๋ค. ๋๋ ๊ทธ ์ค๋ ๋์์ ๊ทธ๊ฒ์ ๋ํด ๋ฌผ์๊ณ ๊ทธ์๊ฒ๋ ํธ์ํ์ต๋๋ค. ์๋ต์๋ฐ์ง ๋ชปํจ ์ฑํ ํจํค์ง๊ฐ ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฃผ์๋ฅผ ๊ธฐ์ธ์ธ ์ง ํ์ฐธ ๋์์ผ๋ ์ ๋ฐ์ดํธ๊ฐ ์์์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค์ ...
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ธฐ์ตํ๋ค๋ฉด Ionic์ด ์ ๋ฐ์ดํธ / ์ ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ ์์ ํ๊ณ ์๋ค๋ ๊ฒ์ ์ผ์ฃผ์ผ ์ ์ ํธ์ํฐ ์ด๋๊ฐ์์ ๋ดค๋ค๋ฉด ... ๋ด๊ฐ ํ๋ฆฌ์ง ์์๋ค๋ฉด ์ง์ ํ๊ณ ๊ธฐ๋ค๋ฆฌ์ธ์.
์๋ ํ์ธ์ ์ ๋ IONIC ํ๋ก์ ํธ v1์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐํ ๋ฒํผ์ด ๋๋๋ก ์ ํจํ์ง ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ค๋ซ๋์ ์ ๋ฅผ ๊ดด๋กญ ํ์ต๋๋ค. ๋์์ด ํ์ํฉ๋๋ค.
@miaozhenkun ์ด ์ ์ฅ์๋ Ionic v3 + ์ฉ์ด๋ฉฐ, v1์ ๊ฒฝ์ฐ https://github.com/ionic-team/ionic-v1์ ์ฌ์ฉํฉ๋๋ค.
@astec ๋น์ ์ ์ค๊ตญ์ธ์ ๋๊น๏ผ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค
ํค๋ณด๋์ 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>
์ ์นด๋ ๋ชฉ๋ก์ ์๋ CSS๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
.์๋์ ์ธ{
์์น : ์๋์ ! ์ค์ํ;
}
.์์ํ{
์์น : ์ ๋ ! ์ค์ํ;
}
.bottom0 {
ํ๋จ : 0;
}
ํ ์คํธ ์์ญ์ ํด๋ฆญํ๋ฉด ํค๋ณด๋๊ฐ ์ด๋ฆฌ์ง ๋ง ์์๋ก ์คํฌ๋กค๋์ง๋ ์์ง๋ง ๋ฌด์ธ๊ฐ๋ฅผ ์ ๋ ฅํ๋ฉด ํ ์คํธ ์์ญ์ผ๋ก ์คํฌ๋กค๋ฉ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ์ด์จ ํ ์คํธ ์์ญ์ ๋ถ๋ชจ์ ๋ํด ์๋ ์์น๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ ๊ด์ฐฐํ์ต๋๋ค.
์์น ์๋๊ฐ์๋ ์์ ์๋ฃจ์ ์ด ์์ต๋๊น?
์๋ค ์!
๋๊ตฌ๋ ์ง ์ด๊ฒ์ ๋ํ ํด๊ฒฐ์ฑ
์ ์ฐพ์์ต๋๋ค.
๋น์ ์ ๋์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
`cli ํจํค์ง : (/usr/local/Cellar/node@6/6.12.2/lib/node_modules)
@ionic/cli-utils : 1.19.0
ionic (Ionic CLI) : 3.19.0
๊ธ๋ก๋ฒ ํจํค์ง :
cordova (Cordova CLI) : 8.0.0
๋ก์ปฌ ํจํค์ง :
@ionic/app-scripts : 3.1.6
Cordova Platforms : android 6.3.0 ios 4.5.4
Ionic Framework : ionic-angular 3.9.2
์ฒด๊ณ:
Android SDK Tools : 26.1.1
Node : v6.12.2
npm : 5.5.1
OS : macOS Sierra
Xcode : Xcode 9.2 Build version 9C40b
ํ๊ฒฝ ๋ณ์:
ANDROID_HOME : /Users/santhoshgl/Library/Android/sdk
๊ธฐํ :
backend : legacy`
ํด๋ฆญ ๋ฒํผ (mousedown)="$event.preventDefault(); yourFunction()"
์ด๋ค ์์์ด๋ผ๋?
์๋ณด์นด๋ @mladilav ๋ฅผ ๊ธฐ๋ค๋ ค์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒ
์ด์จ ์ ๋ ฅ์์ iOS ํค๋ณด๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ฐ๋จํ ๋งํด์ ํค๋ณด๋๊ฐ ํ์๋ ํ ์ ๋ ฅ์ ์บ๋ฟ์ด ๋ ๋๋ง๋์ง ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ํ๋์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฅ ํ ์ ์์ต๋๋ค. ๋๋ ๋ค์ํ ionic ๋ฒ์ , webview ๋ฒ์ ๊ด๋ฆฌ ๋ฑ์ ๋ชจ๋ ์๋ํ์ง๋ง ์๋ฌด ์์ฉ์ด ์์์ต๋๋ค. ์ด์จ ์ ๋ ฅ์ ์คํฌ๋กคํด์ผํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์ด์จ ์ ๋ ฅ์ด ํ์ด์ง ๋งจ ์์ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ฌธ์ ๋ฅผ ์์ ํ ํด๊ฒฐ ํ ํ ๊ฐ์ง๋ฅผ ์ฐพ์์ต๋๋ค. Xcode 8.3.3์์ ํด๋น ์ฑ์ ๋น๋ํ์ต๋๋ค. ๋ด๊ฐ ์๋ํ ๋ชจ๋ ์ด์ ๋น๋๋ ๋ฉฐ์น ์ ์ ๋์จ ์ต์ Xcode 9.3 ๋ฆด๋ฆฌ์ค์ Xcode 9.0์ ์ฌ์ฉํ์ต๋๋ค. ์ด ์์ ์ ๋ฌธ์ ๋ Apple์ด ๊ฐ๊น์ด ์ฅ๋์ Xcode 8์์ ์ ์ถ๋๋ ์ฑ ์์์ ์ญ์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๊ตฌ๋ ์ง ๋ค๋ฅธ ์์ด๋์ด๊ฐ ์์ต๋๊น?
PB ์คํฌ๋กค, ๋๋ ์ฌ๊ธฐ์ ํดํน์ ์ผ๋ค : https://github.com/ionic-team/ionic/issues/10629#issuecomment -395084125
๋ฌธ์ ๋ฅผ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! Ionic 3์ ์์ค ์ฝ๋์ ๋ฌธ์ ๋ฅผ ๋ณ๋์ ์ ์ฅ์๋ก ์ฎ๊ฒผ์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ Ionic 3์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ฎ๊น๋๋ค. ์ ๊ธฐ์ด ๋ฌธ์ ๋ฅผ ์ถ์ ํ์ญ์์ค.
Ionic์ ์ฌ์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋ฌธ์ ์ด๋ : https://github.com/ionic-team/ionic-v3/issues/827
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ๊ฒฝ์ฐ์๋ AppModule์ด ์๋์ ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์ถ๊ฐํ๋ฉด ๊ธฐ๋ณธ๊ฐ๋ณด๋ค ์๋์ ์ผ๋ก ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ด ์์ฑ๋ฉ๋๋ค.