Ionic Native Google 地图插件 - 设置应用背景颜色
Ionic Native Google Maps plugin - set app background color
我在使用 Ionic 3 时遇到问题,特别是在使用本机 Google 地图插件时设置应用背景颜色。地图是浏览器的本机元素 "under",为 Ionic 应用程序设置背景色会覆盖地图并阻止其显示。
When looking at the docs, Environment
class 中有一个 setBackgroundColor(color)
方法,但我不知道我应该在哪里使用那个 class.有人知道吗?
好吧,我简单地实例化了Environment
class 然后调用了setBackgroundColor
。像这样:
import { Environment } from '@ionic-native/google-maps`;
export class MyClass {
environment: Environment = null;
myMethod(): void {
this.environment = new Environment();
this.environment.setBackgroundColor("red");
}
}
哇。这让我有点惊讶。 @mkkekkonen 的回答当然有效,但这不是我预期的设计方式。
(我是 cordova-plugin-googlemaps 的作者,也是 @ionic-native/google-maps
插件的主要维护者)。
环境、地理编码器、球形、多边形(哦,还没有实现)和编码 classes 在原始插件中是 static class。
例如,我认为没有人会这样做,但这是可能的。
这不是我想要的方式。
import { Environment } from '@ionic-native/google-maps`;
export class MyClass {
environment: Environment = null;
myMethod1(): void {
(new Environment()).setBackgroundColor("red");
}
myMethod2(): void {
(new Environment()).setBackgroundColor("blue");
}
}
正确的方法是使用provider
(@4.3.3)
@IonicPage()
@Component({
selector: 'page-set-background-color',
templateUrl: 'set-background-color.html',
providers: [
Environment
]
})
export class SetBackgroundColorPage {
map: GoogleMap;
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public environment: Environment,
public googleMaps: GoogleMaps) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad SetBackgroundColorPage');
this.map = this.googleMaps.create('map_canvas');
this.environment.setBackgroundColor('red');
}
}
请使用这种方式,mkkekkonen。
我会在下一个版本中修复这个错误。
更新
在@ionic-native@4.3.4 之后的下一个版本中,代码将是这样的:
@IonicPage()
@Component({
selector: 'page-set-background-color',
templateUrl: 'set-background-color.html'
})
export class SetBackgroundColorPage {
map: GoogleMap;
constructor() {
}
ionViewDidLoad() {
console.log('ionViewDidLoad SetBackgroundColorPage');
this.map = GoogleMaps.create('map_canvas');
Environment.setBackgroundColor('red');
}
}
我在使用 Ionic 3 时遇到问题,特别是在使用本机 Google 地图插件时设置应用背景颜色。地图是浏览器的本机元素 "under",为 Ionic 应用程序设置背景色会覆盖地图并阻止其显示。
When looking at the docs, Environment
class 中有一个 setBackgroundColor(color)
方法,但我不知道我应该在哪里使用那个 class.有人知道吗?
好吧,我简单地实例化了Environment
class 然后调用了setBackgroundColor
。像这样:
import { Environment } from '@ionic-native/google-maps`;
export class MyClass {
environment: Environment = null;
myMethod(): void {
this.environment = new Environment();
this.environment.setBackgroundColor("red");
}
}
哇。这让我有点惊讶。 @mkkekkonen 的回答当然有效,但这不是我预期的设计方式。
(我是 cordova-plugin-googlemaps 的作者,也是 @ionic-native/google-maps
插件的主要维护者)。
环境、地理编码器、球形、多边形(哦,还没有实现)和编码 classes 在原始插件中是 static class。
例如,我认为没有人会这样做,但这是可能的。 这不是我想要的方式。
import { Environment } from '@ionic-native/google-maps`;
export class MyClass {
environment: Environment = null;
myMethod1(): void {
(new Environment()).setBackgroundColor("red");
}
myMethod2(): void {
(new Environment()).setBackgroundColor("blue");
}
}
正确的方法是使用provider
(@4.3.3)
@IonicPage()
@Component({
selector: 'page-set-background-color',
templateUrl: 'set-background-color.html',
providers: [
Environment
]
})
export class SetBackgroundColorPage {
map: GoogleMap;
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public environment: Environment,
public googleMaps: GoogleMaps) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad SetBackgroundColorPage');
this.map = this.googleMaps.create('map_canvas');
this.environment.setBackgroundColor('red');
}
}
请使用这种方式,mkkekkonen。 我会在下一个版本中修复这个错误。
更新
在@ionic-native@4.3.4 之后的下一个版本中,代码将是这样的:
@IonicPage()
@Component({
selector: 'page-set-background-color',
templateUrl: 'set-background-color.html'
})
export class SetBackgroundColorPage {
map: GoogleMap;
constructor() {
}
ionViewDidLoad() {
console.log('ionViewDidLoad SetBackgroundColorPage');
this.map = GoogleMaps.create('map_canvas');
Environment.setBackgroundColor('red');
}
}