Свойство 'кордова' не существует по типу 'Окно'.: ионный - PullRequest
0 голосов
/ 24 августа 2018

В моем коде я получаю ошибку как Property 'cordova' does not exist on type 'Window'. Здесь я получаю сообщение об ошибке var browserRef = window.cordova.InAppBrowser.open()

Я также установил typings, но все равно получаюэта ошибка.Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Это просто Машинопись , жалуется, потому что cordova не является частью определения объекта window. Есть несколько способов избежать этой ошибки:

Один из способов - объявить свойство window типа any, например:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

declare let window: any; // <--- Declare it like this

@Component({
  selector: 'page-demo',
  templateUrl: 'demo.html'
})
export class DemoPage {

  constructor(public navCtrl: NavController, ...) { }

  public yourMethod(): void {
    var browserRef = window.cordova.InAppBrowser.open(); // <--- and use it like this
  }

}

Другим способом было бы привести объект window к типу any в том же положении:

public anotherMethod(): void {
  var browserRef = (<any>window).cordova.InAppBrowser.open();
}
0 голосов
/ 24 августа 2018

Cordova выполняется только на устройствах, а не в браузере.Чтобы избежать ошибок при просмотре вашей сборки в браузере, нужно обернуть команды Cordova в оператор if платформы.Например:

import { Platform } from 'ionic-angular';
import { InAppBrowser } from '@ionic-native/in-app-browser';

constructor( private platform: Platform, private iab: InAppBrowser ) {
    this.platform.ready().then(function () {
        if (platform.is('cordova')) {
            // your code, eg:
            this.iab.create('http://google.com/', '_blank');
        }
    });
}
...