web-dev-qa-db-ja.com

プロパティ「cordova」はタイプ「Window」に存在しません。 :ionic

私のコードでは、_Property 'cordova' does not exist on type 'Window'._としてエラーが発生しています。ここでエラーが発生していますvar browserRef = window.cordova.InAppBrowser.open()

typingsもインストールしましたが、それでもこのエラーが発生します。どうすれば解決できますか?

7
user10081175

cordovawindowオブジェクト定義の一部ではないので、それはTypeScriptに文句を言うだけです。このエラーを回避する方法はいくつかあります。

1つの方法は、次のように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();
}
13
sebaferreras

Cordovaは、ブラウザーではなくデバイスでのみ実行されます。ブラウザでビルドを表示する際のエラーを回避する方法は、プラットフォームのifステートメントでCordovaコマンドをラップすることです。例:

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');
        }
    });
}
2
Grant