ionic3引用外部插件--百度地圖及echart報(bào)表的使用

前言

ionic3提供的組件已經(jīng)相當(dāng)豐富咯搭儒,但是事實(shí)上有些特殊的需求,比如使用百度地圖,或者第三方插件echart報(bào)表插件是丹泉,就不能用傳統(tǒng)的方式去使用第三方插件咯,如何在Ionic3項(xiàng)目中使用第三方JavaScript庫?.其實(shí)特別簡單啦鸭蛙,跟著我步伐前進(jìn)吧摹恨。

使用步驟如下

環(huán)境安裝

1, 安裝ChartJs庫
cd /項(xiàng)目的根目錄下

npm install chart.js --save

2, 全局安裝typings

    npm install -g typings

3.找到自己的項(xiàng)目新建一個declarations.d.ts文件內(nèi)容如下

declare module 'echarts'; //報(bào)表的插件申明
declare var BMap;          //百度地圖的申明

基本的環(huán)境配置到這里搞定了

代碼實(shí)現(xiàn)

需求:效果圖如下

1.gif

擼代碼部分

百度地圖的實(shí)現(xiàn)過程:
第一步去百度地圖api控制臺創(chuàng)建一個應(yīng)用,鏈接地址如下

···
http://lbsyun.baidu.com/apiconsole/key
···

TIM圖片20170830192926.png
第二步找到自己的ionic3項(xiàng)目下的index.html引用如下腳本
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的秘鑰哦">

模板頁面

<ion-header>
    <ion-navbar color="primary">
        <ion-title>百度地圖的使用</ion-title>
    </ion-navbar>
</ion-header>
<ion-content>
    <div id="hjmap" #hjmap></div>
</ion-content>

js腳本

import { Component, ViewChild, ElementRef } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
/**
 * 百度地圖的調(diào)用說明
 * @by weijb
 */
@IonicPage({
    name: 'baiduMap-page'
})
@Component({
    selector: 'page-baidu-map',
    templateUrl: 'baidu-map.html',
})
export class BaiduMapPage {
    @ViewChild('hjmap') mapElement: ElementRef;
    constructor(public navCtrl: NavController, public navParams: NavParams) {}
    ionViewDidLoad() {
        let map = new BMap.Map(this.mapElement.nativeElement, {
            enableMapClick: true
        }); //創(chuàng)建地圖實(shí)例
        map.enableScrollWheelZoom(); //啟動滾輪放大縮小娶视,默認(rèn)禁用
        map.enableContinuousZoom(); //連續(xù)縮放效果晒哄,默認(rèn)禁用
        let point = new BMap.Point(118.06, 24.27); //坐標(biāo)可以通過百度地圖坐標(biāo)拾取器獲取
        map.centerAndZoom(point, 8); //設(shè)置中心和地圖顯示級別
        
        var marker = new BMap.Marker(point);  // 創(chuàng)建標(biāo)注
        map.addOverlay(marker);              // 將標(biāo)注添加到地圖中
        
        var opts = {
          width : 200,     // 信息窗口寬度
          height: 100,     // 信息窗口高度
          title : "廈門東軟慧聚科技有限公司" , // 信息窗口標(biāo)題
          enableMessage:true,//設(shè)置允許信息窗發(fā)送短息
          message:"親耐滴,晚上一起吃個飯吧肪获?戳下面的鏈接看下地址喔~"
        }
        var infoWindow = new BMap.InfoWindow("地址:北京東軟慧聚科技有限公司", opts);  // 創(chuàng)建信息窗口對象 
        marker.addEventListener("click", function(){          
            map.openInfoWindow(infoWindow,point); //開啟信息窗口
        });
        
    }
}

echart報(bào)表的使用
模板部分
<ion-header>
  <ion-navbar color="primary">
    <ion-title>報(bào)表中心  </ion-title>
  </ion-navbar>
</ion-header>
<ion-content>
  <div  id="hjcenter" #hjcenter></div>
</ion-content>
代碼部分
import { Component, ViewChild, ElementRef } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import echarts from 'echarts';
/**
 *報(bào)表中心的使用
 * by weijinbo
 */
@IonicPage({
    name: 'hj-echart-page'
})
@Component({
    selector: 'page-hj-echart',
    templateUrl: 'hj-echart.html',
})
export class HjEchartPage {
    @ViewChild('hjcenter') mapElement: ElementRef;
    myChart: any;
    data = {
        "invoicedAmount": 1000,
        "noTaxTotalAmount": 3386.05,
        "purchasingOrgCode": 2200,
        "unbilledAmount": 900,
        "undeliveredAmount": 3386.05
    };
    constructor(public navCtrl: NavController, public navParams: NavParams) {}
    ionViewDidLoad() {
        this.myChart = echarts.init(this.mapElement.nativeElement);
        this.init(this.data);
    }
    init(data) {
        var option = {
            tooltip: {
                trigger: 'item',
                // 餅圖寝凌、雷達(dá)圖、儀表盤贪磺、漏斗圖: a(系列名稱)硫兰,b(數(shù)據(jù)項(xiàng)名稱),c(數(shù)值), d(餅圖:百分比 | 雷達(dá)圖:指標(biāo)名稱)
                formatter: "寒锚 :<br/> {c} (tj1rn37%)"
            },
            // 顏色
            color: ['#30d5c4', '#f9cb42', '#f46f70'],
            // 展示區(qū)
            // 雙層餅圖:使得擁有inner和outter
            series: [{
                    type: 'pie',
                    // 半徑
                    radius: '45%',
                    // 圓心坐標(biāo)
                    center: ['50%', '40%'],
                    // 樣式
                    itemStyle: {
                        normal: {
                            label: {
                                show: true,
                                position: 'inner',
                                formatter: 'thnfznz %'
                            }
                        }
                    },
                    data: [{
                            value: data.undeliveredAmount,
                            name: "未交貨"
                        },
                        {
                            value: data.unbilledAmount,
                            name: "已交貨未開票"
                        },
                        {
                            value: data.invoicedAmount,
                            name: "已開票"
                        }
                    ],
                },
                {
                    type: 'pie',
                    radius: '45%',
                    // 圓心坐標(biāo)
                    center: ['50%', '40%'],
                    // 樣式
                    itemStyle: {
                        normal: {
                            label: {
                                show: true,
                                position: 'outter',
                                formatter: '{c}'
                            }
                        }
                    },
                    data: [{
                            value: data.undeliveredAmount,
                            name: "未交貨"
                        },
                        {
                            value: data.unbilledAmount,
                            name: "已交貨未開票"
                        },
                        {
                            value: data.invoicedAmount,
                            name: "已開票"
                        }
                    ],
                }
            ]
        };
        this.myChart.setOption(option);
    }
}
總結(jié)
完成以上功能遇到最大的坑就是環(huán)境問題劫映,被整死了好幾次,結(jié)果還好沒有被整死刹前,公司網(wǎng)絡(luò)也不給力泳赋,cnpm 下載丟包嚴(yán)重。否則這些功能不應(yīng)該會花費(fèi)這么長時間喇喉,哎哎哎祖今。。拣技。
如果覺得可以給個贊咯~-~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末千诬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子膏斤,更是在濱河造成了極大的恐慌徐绑,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莫辨,死亡現(xiàn)場離奇詭異傲茄,居然都是意外死亡毅访,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進(jìn)店門盘榨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喻粹,“玉大人,你說我怎么就攤上這事草巡∈匚兀” “怎么了?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵捷犹,是天一觀的道長弛饭。 經(jīng)常有香客問我,道長萍歉,這世上最難降的妖魔是什么侣颂? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮枪孩,結(jié)果婚禮上憔晒,老公的妹妹穿的比我還像新娘。我一直安慰自己蔑舞,他們只是感情好拒担,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攻询,像睡著了一般从撼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钧栖,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天低零,我揣著相機(jī)與錄音,去河邊找鬼拯杠。 笑死掏婶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潭陪。 我是一名探鬼主播雄妥,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼依溯!你這毒婦竟也來了老厌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤黎炉,失蹤者是張志新(化名)和其女友劉穎梅桩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拜隧,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宿百,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了洪添。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垦页。...
    茶點(diǎn)故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖干奢,靈堂內(nèi)的尸體忽然破棺而出痊焊,到底是詐尸還是另有隱情,我是刑警寧澤忿峻,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布薄啥,位于F島的核電站,受9級特大地震影響逛尚,放射性物質(zhì)發(fā)生泄漏垄惧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一绰寞、第九天 我趴在偏房一處隱蔽的房頂上張望到逊。 院中可真熱鬧,春花似錦滤钱、人聲如沸觉壶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铜靶。三九已至,卻和暖如春他炊,著一層夾襖步出監(jiān)牢的瞬間争剿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工佑稠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秒梅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓舌胶,卻偏偏與公主長得像捆蜀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幔嫂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容