我是打字稿的新手。我认为这个问题与打字稿有关。 我正在构建一个离子应用程序。我从home.html调用函数setwall()。我在home.ts中定义了setwall()函数。当我运行离子应用程序时显示
Runtime Error
Uncaught (in promise): TypeError: Cannot read property 'wallpaper' of undefined TypeError: Cannot read property 'wallpaper' of undefined"
这是我的home.ts。
代码import { Component } from '@angular/core';
import { NavController,Platform } from 'ionic-angular';
import { ListPage } from '../list/list';
declare var window: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController,private platform: Platform) {
}
goPage1(){
this.navCtrl.push(ListPage);
}
setwall(){
this.platform.ready().then(() => {
window['plugins'].wallpaper.setImage("assets/img/3.jpg");
});
}
}
还有更多信息: 这是home.html代码
<ion-header>
<ion-navbar>
<button ion-button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>Wallfeed</ion-title>
</ion-navbar>
</ion-header>
<ion-content class="card-background-page">
<ion-card (click)="goPage1()">
<img src="assets/img/1.png"/>
<div class="card-title">São Paulo</div>
<div class="card-subtitle">41 Listings</div>
</ion-card>
<ion-card>
<img src="assets/img/2.jpg"/>
<div class="card-title">Amsterdam</div>
<div class="card-subtitle">64 Listings</div>
</ion-card>
<ion-card (click)="setwall()">
<img src="assets/img/3.jpg"/>
<div class="card-title">San Francisco</div>
<div class="card-subtitle">72 Listings</div>
</ion-card>
<ion-card>
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ16sUl5EqIDeuP1AjIX6ESSbAFAcS2-JLr4znf-extlfIr47Ni"/>
<div class="card-title">Madison</div>
<div class="card-subtitle">28 Listings</div>
</ion-card>
</ion-content>
指向cordova插件的链接:https://github.com/fbsanches/cordova-plugin-wallpaper 感谢。
答案 0 :(得分:1)
您可以尝试如下所示。
declare var window: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController,private platform: Platform) {
}
goPage1(){
this.navCtrl.push(ListPage);
}
setwall(){
this.platform.ready().then(() => {
window.plugins.wallpaper.setImage("./assets/img/3.jpg"); //Changed here
});
}
}