Hey,
I would like to create an alert component which displays a native alert on devices and ionic alert on browsers.
Do you guys have an idea how to do that?
The idea is to use it with promises.
Thanks
JB
Hey,
I would like to create an alert component which displays a native alert on devices and ionic alert on browsers.
Do you guys have an idea how to do that?
The idea is to use it with promises.
Thanks
JB
You could use condition and create alert by this. But why you need it? Why not use ionic alert?
I would like to do that due to this issue https://github.com/driftyco/ionic/issues/6224 that won’t be fixed.
Here is the class I’d like to use:
import {NavController} from "ionic-angular/index";
import {Platform} from "ionic-angular/index";
import {Dialogs} from "ionic-native/dist/index";
import {Alert} from "ionic-angular/index";
export interface AlertOption {
message: string;
title?: string;
buttonName?: string;
}
export class Alert {
private _useNativeComponent:boolean = true;
constructor(private nav:NavController, private platform:Platform) {
this._useNativeComponent = platform.is('cordova');
}
/**
*
* @param option
* @returns {Promise<any>}
*/
create(option?:AlertOption):Promise<any> {
option.title = option.title || 'Alert';
option.buttonName = option.buttonName || 'OK';
if (this._useNativeComponent) {
return this.createNative(option.message, option.title, option.buttonName);
}
else {
return this.createIonic(option.message, option.title, option.buttonName);
}
}
private createNative(message, title, buttonName):Promise<any> {
return Dialogs.alert(message, title, buttonName);
}
private createIonic(message, title, buttonName):Promise<any> {
return new Promise<any>(resolve=> {
let alert = Alert.create({
title: title,
message: message,
buttons: [{
text: buttonName,
handler: data=> {
resolve();
}
}]
});
this.nav.present(alert);
});
}
}
But I don’t know how to instantiate the class once and use it everywhere I want to, like the ionic’s Alert