Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 在Ionic中设置页面加载焦点_Ionic Framework - Fatal编程技术网

Ionic framework 在Ionic中设置页面加载焦点

Ionic framework 在Ionic中设置页面加载焦点,ionic-framework,Ionic Framework,我似乎无法在页面加载上设置焦点。以下是我现在正在尝试做的: 输入: <ion-input placeholder="SCAN LP TO ACKNOWLEDGE" type="number" [(ngModel)]="this.session.listService.licensePlate" required (keyup.enter)="ValidateAndAcknowledge()" #myInput ></ion-input> 因此,当模板声明#myInput

我似乎无法在页面加载上设置焦点。以下是我现在正在尝试做的:

输入:

<ion-input placeholder="SCAN LP TO ACKNOWLEDGE" type="number" [(ngModel)]="this.session.listService.licensePlate" required (keyup.enter)="ValidateAndAcknowledge()" #myInput ></ion-input>

因此,当模板声明#myInput时,ViewChild引用“输入”。您需要解决以下问题:

export class AcknowledgePage {
  @ViewChild('myInput') myInput;

  constructor() {
      }

  ionViewDidLoad() {

    setTimeout(() => {
      console.log(this.myInput);
      this.myInput.setFocus();

    }, 150);

  }
}

现在,即使这段代码可以在Android设备上使用——这在最新的iOS(11.3+)上可能不起作用,因为苹果实际上希望用户通过明确的点击动作触发焦点,而不是通过编程

有更好的方法吗?这将是一款爱奥尼亚Cordova安卓应用程序,不太可能,我最近检查了一下,没有;我找不到更好更优雅的解决方案。但是你能更好地描述你的用例吗?您希望在页面加载中确保有焦点,从而使虚拟键盘立即或立即出现?你想解决什么?没错。页面上有一个输入字段,他们将使用条形码扫描仪扫描条形码。这将在扫描后触发并自动进入。但我希望在页面加载时将焦点设置在那里,这样就不会与页面本身发生交互。明白了吗?当前的代码-它有什么“不好”的地方?这是可行的,但还是有问题?你能详细说明一下你想做什么不同的工作吗?此外,您的代码当前指向ionViewDidLoad生命周期,该生命周期仅在组件(页面)的代码加载到内存时触发一次。您可能需要在此处使用IonViewDiCenter挂钩。
export class AcknowledgePage {
  @ViewChild('myInput') myInput;

  constructor() {
      }

  ionViewDidLoad() {

    setTimeout(() => {
      console.log(this.myInput);
      this.myInput.setFocus();

    }, 150);

  }
}