已解决:
import { Component, ViewChild} from '@angular/core';
import { Keyboard } from 'ionic-native';
@Component({
templateUrl: 'build/pages/home/home.html'
})
export class HomePage {
@ViewChild('input') myInput ;
constructor() {}
ionViewDidLoad() {
setTimeout(() => {
Keyboard.show() // for android
this.myInput.setFocus();
},150);
}
}
1) 导入 "ViewChild"
import {Component, ViewChild} from '@angular/core';
2) 在HTML模板中创建对输入的引用:
<ion-input #focusInput></ion-input>
3) 使用 @ViewChild 获取之前引用的输入组件。
@ViewChild('focusInput') myInput;
4) 触发焦点
使用 ionViewLoaded() 方法,在每次加载视图/页面时触发它。
需要 setTimeout
ionViewLoaded() {
setTimeout(() => {
Keyboard.show() // for android
this.myInput.setFocus();
},150); //a least 150ms.
}
4) 在Android上显示键盘
import { Keyboard } from 'ionic-native';
调用Keyboard.show()在Android上呼出键盘。
5) 在iOS上显示键盘
将以下行添加到您的config.xml中以使其在iOS上工作:
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
借助于mhartington的优秀文章:http://mhartington.io/post/setting-input-focus/
ionViewLoaded()
did not work for me, I had to useionViewDidLoad()
- JCisar