import {AlertController, ToastController} from "ionic-angular";
import {Injectable} from "@angular/core";
import {InAppBrowser} from "@ionic-native/in-app-browser";

/**
 * 自定义组件方法
 */

@Injectable()
export class CommonService {

    constructor(public toastCtrl: ToastController,
                public alertCtrl: AlertController,
                private inAppBrowser: InAppBrowser) {
    }

    /**
     * 提示信息 位置：居中，延时2s
     * @param message  提示文字
     * @param callback  提示信息之后执行的方法
     */
    toast(message, callback?) {
        let toast = this.toastCtrl.create({
            message: message,
            duration: 2000,
            position: 'middle',
            dismissOnPageChange: true,
        });
        toast.present();
        if (callback) {
            callback();
        }
    }

    /**
     * alert弹窗
     * @param message  弹窗内的文字
     * @param callback  如果有回调方法 就有确定、取消两个按钮，没有回调方法 则只有确认一个按钮
     */
    alert(message, callback?) {
        if (callback) {
            let alert = this.alertCtrl.create({
                title: '提示',
                message: message,
                buttons: ['取消', {
                    text: "确定",
                    handler: data => {
                        callback();
                    }
                }]
            });
            alert.present();
        } else {
            let alert = this.alertCtrl.create({
                title: '',
                message: message,
                buttons: ["确定"]
            });
            alert.present();
        }
    }

    /**
     * 通过浏览器打开url
     */
    openUrlByBrowser(url: string): void {
        this.inAppBrowser.create(url, '_system');
    }
}
