我已经按照 Ionic 2 文档中的说明正确安装了BackgroundMode
插件。
使用以下代码:
this.backgroundMode.on('enable').subscribe(()=>{
console.log("BG Mode ENABLED");
setTimeout(function(){
try{
console.log("BG Active"+this.backgroundMode.isActive());
}catch(err){
console.log(err.message);
}
},5000);
});
在控制台中返回BG Mode ENABLED
,但超时块中的第二部分返回:
Cannot read property isActive of undefined
任何想法是什么原因造成的?
当您使用function () {}
语法进行回调时,函数内的上下文(this
( 会发生变化。使用箭头函数捕获正确的上下文:
this.backgroundMode.on('enable').subscribe(()=>{
console.log("BG Mode ENABLED");
setTimeout(() => { // Use arrow function here
try{
console.log("BG Active"+this.backgroundMode.isActive());
}catch(err){
console.log(err.message);
}
},5000);
});
有关箭头函数的文档。请参阅此部分,了解它与function () {}
语法的区别。