私のコードでは、_Property 'cordova' does not exist on type 'Window'.
_としてエラーが発生しています。ここでエラーが発生していますvar browserRef = window.cordova.InAppBrowser.open()
typings
もインストールしましたが、それでもこのエラーが発生します。どうすれば解決できますか?
cordova
はwindow
オブジェクト定義の一部ではないので、それは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();
}
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');
}
});
}