iOS 12以上版本:Vue移动应用-键盘输入点击时崩溃

时间:2019-02-08 18:54:13

标签: ios cordova vuejs2 vue-router quasar-framework

我们有一个使用Quasar Framework,Vue和Cordova构建的跨平台移动应用程序。

在登录页面上,当用户尝试在版本12+的iOS设备上登录应用程序时,当用户使用键盘的“ enter”键提交其凭据时,应用程序崩溃。

这是登录表单的简单视图: Login Form

仅当他们使用iOS键盘时才会发生崩溃。当用户使用登录页面上的“登录”按钮时,该应用程序不会崩溃,并将用户推送到主屏幕。

我们已经在iOS 11.4版的设备上对此进行了测试,并且没有发生崩溃。

这是我的登录页面和脚本的示例。

import { required, email } from 'vuelidate/lib/validators';
import { filter } from 'quasar';

export default {
  name: 'PageLogin',
  data: function() {
    return {
      form: {
        username: '',
        password: ''
      },
      loggingIn: false
    };
  },
  validations: {
    form: {
      username: { required, email },
      password: { required }
    }
  },
  methods: {
    onSubmit() {
      this.$v.form.$touch();

      // Only submit if there are no errors
      if (!this.$v.form.$error) {
        this.loggingIn = true;

        this.$store
          .dispatch('account/verifyUsername', this.form)
          .then(result => {
            //account/verifyUsername
            return this.$store.dispatch('account/login', this.form.password);
          })
          .then(result => { //account/login
            this.$router.push({ name: 'home' });
          })
          .catch(error => {})
          .finally(() => {
            this.loggingIn = false;
          });
      }
    }
  }
};
<template>
  <q-page>
    <form class="ad-form" @submit.prevent="onSubmit">
      <q-field :error="$v.form.username.$error" error-label="Please enter a valid email address">
        <q-input type="email" v-model="form.username" float-label="Email" :error="$v.form.username.$error" @blur="$v.form.username.$touch">
          <q-autocomplete @search="onSearch" @selected="onItemSelected" :min-characters="0" value-field="email"/>
        </q-input>
      </q-field>
      <q-field :error="$v.form.password.$error" error-label="Please enter a password">
        <q-input type="password" v-model="form.password" float-label="Password" :error="$v.form.password.$error" @blur="$v.form.password.$touch"/>
      </q-field>
      <q-btn class="standalone" type="submit" color="primary" :loading="loggingIn" :disabled="$v.form.$invalid">Login
        <span slot="loading">
          <q-spinner class="on-left"/>Logging In
        </span>
      </q-btn>
      <q-btn class="standalone" type="button" flat color="secondary" :to="{ name: 'forgotPassword' }">Forgot your password?</q-btn>
    </form>
  </q-page>
</template>

0 个答案:

没有答案