我正在从IonicNative页使用Cordova插件。

我使用两种不同的选择,一种选择日期,另一种选择
时间。两者都可以在iOS上正常工作,但在Android上却有两个问题。


在Date Picker上没有界限,因此即使我确实在控制器中传递了旧日期也无法选择。

showDatePicker(){
this.datePicker.show({
  date: this.dateChosen,
  mode: 'date',
  minDate: this.today,
  maxDate: this.maxDay,
  allowOldDates: false        }).then(
  date => {
    this.dateChosen = m(date);
  },
  err => alert('Error occurred while getting date: ' + err)
);}


我使用moment.js生成日期/时间,所以this.dateChose = moment();
它不是问题的根源,与this.todaythis.maxDay相同


我尝试使用javascript的Date(),但是它没有任何改变,在Android上,我仍然可以选择所需的日期


更重要的问题是,Time Picker根本无法在Android上运行

showTimePicker(){
this.datePicker.show({
  date: this.timeChosen,
  mode: 'time',
  is24Hour: true,
  minuteInterval: 15,
  allowOldDates: false        }).then(
  date => {
    this.timeChosen = m(date);
  },
  err => alert('Error occurred while getting date: ' + err)
);}



在iOS上,我没有问题,并且工作正常,但是在Android上,错误消息为For input string "2017-07-10T13:10.24.213Z"时进入错误状态。
我更改了输入以将其传递给unix时间,但是它只是更改了err消息。有人知道该怎么办吗?

最佳答案

我有一个有用的答案:)

  import { DatePicker } from '@ionic-native/date-picker'
  //...
  constructor(public datePicker: DatePicker) {}
  //...
  public toPickDateTime() {

    let minDays = 2
    let maxDays = 365

    this.datePicker
      .show({
        mode: 'datetime',
        date: this.getNowAndAdd(2, true),
        minDate: this.getNowAndAdd(2),
        maxDate: this.getNowAndAdd(5),
        is24Hour: true,
        androidTheme: this.datePicker.ANDROID_THEMES.THEME_HOLO_DARK,
      })
      .then(
        date => console.log(date),
        err => console.log(err)
      );
  }

  private getNowAndAdd(nbDays, forceDate = false): any
  {
    var date = new Date(new Date().getTime() + (nbDays * 24 * 3600 * 1000))

    return (this.platform.is("android") && !forceDate) ? date.getTime() : date
  }


您需要知道minDate和maxDate是“错误的”,并且没人在乎^^。
在android上,您需要传递一个整数,而在ios上,您需要传递一个日期

我说这是一个错误,因为“离子”和“科尔多瓦”必须在一个完美的世界中进行此解析。

由于没有,这个技巧可以解决问题。

关于cordova - Ionic Native Date Picker在Android上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45013041/

10-13 03:07