├── .DS_Store ├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── demo.jpg ├── dist ├── .DS_Store ├── index.d.ts ├── index.js ├── index.js.map ├── index.metadata.json ├── jpush.module.d.ts ├── jpush.module.js ├── jpush.module.js.map ├── jpush.module.metadata.json ├── plugin-jpush.service.d.ts ├── plugin-jpush.service.js ├── plugin-jpush.service.js.map └── plugin-jpush.service.metadata.json ├── jpush-demo ├── .editorconfig ├── .sourcemaps │ └── main.js.map ├── README.md ├── config.xml ├── hooks │ └── README.md ├── ionic.config.json ├── package-lock.json ├── package.json ├── resources │ ├── README.md │ ├── android │ │ ├── icon │ │ │ ├── drawable-hdpi-icon.png │ │ │ ├── drawable-ldpi-icon.png │ │ │ ├── drawable-mdpi-icon.png │ │ │ ├── drawable-xhdpi-icon.png │ │ │ ├── drawable-xxhdpi-icon.png │ │ │ └── drawable-xxxhdpi-icon.png │ │ └── splash │ │ │ ├── drawable-land-hdpi-screen.png │ │ │ ├── drawable-land-ldpi-screen.png │ │ │ ├── drawable-land-mdpi-screen.png │ │ │ ├── drawable-land-xhdpi-screen.png │ │ │ ├── drawable-land-xxhdpi-screen.png │ │ │ ├── drawable-land-xxxhdpi-screen.png │ │ │ ├── drawable-port-hdpi-screen.png │ │ │ ├── drawable-port-ldpi-screen.png │ │ │ ├── drawable-port-mdpi-screen.png │ │ │ ├── drawable-port-xhdpi-screen.png │ │ │ ├── drawable-port-xxhdpi-screen.png │ │ │ └── drawable-port-xxxhdpi-screen.png │ ├── icon.png │ ├── icon.png.md5 │ ├── ios │ │ ├── icon │ │ │ ├── icon-1024.png │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-40@3x.png │ │ │ ├── icon-50.png │ │ │ ├── icon-50@2x.png │ │ │ ├── icon-60.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-60@3x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ ├── icon-83.5@2x.png │ │ │ ├── icon-small.png │ │ │ ├── icon-small@2x.png │ │ │ ├── icon-small@3x.png │ │ │ ├── icon.png │ │ │ └── icon@2x.png │ │ └── splash │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h.png │ │ │ ├── Default-736h.png │ │ │ ├── Default-Landscape-736h.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape@~ipadpro.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait@~ipadpro.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ ├── Default@2x~iphone.png │ │ │ ├── Default@2x~universal~anyany.png │ │ │ └── Default~iphone.png │ ├── splash.png │ └── splash.png.md5 ├── src │ ├── app │ │ ├── app.component.ts │ │ ├── app.html │ │ ├── app.module.ts │ │ ├── app.scss │ │ └── main.ts │ ├── assets │ │ ├── icon │ │ │ └── favicon.ico │ │ └── imgs │ │ │ └── logo.png │ ├── index.html │ ├── manifest.json │ ├── pages │ │ ├── about │ │ │ ├── about.html │ │ │ ├── about.scss │ │ │ └── about.ts │ │ ├── contact │ │ │ ├── contact.html │ │ │ ├── contact.scss │ │ │ └── contact.ts │ │ ├── home │ │ │ ├── home.html │ │ │ ├── home.scss │ │ │ └── home.ts │ │ └── tabs │ │ │ ├── tabs.html │ │ │ └── tabs.ts │ ├── service-worker.js │ └── theme │ │ └── variables.scss ├── tsconfig.json └── tslint.json ├── package-lock.json ├── package.json ├── src ├── .DS_Store ├── index.ts ├── jpush.module.ts └── plugin-jpush.service.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | node_modules/ 4 | aot/ 5 | platforms/ 6 | www/ 7 | plugins/ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | .DS_Store 3 | .idea/ 4 | node_modules/ 5 | aot/ 6 | src/ 7 | jpush-demo/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Hsuan Lee 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ionic2-JPush 2 | 3 | ![](demo.jpg) 4 | [![Dependency Status](https://david-dm.org/HsuanXyz/ionic2-jpush.svg)](https://david-dm.org/HsuanXyz/ionic2-jpush) 5 | [![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][downloads-url] [![MIT License][license-image]][license-url] 6 | 7 | 为ionic2调用极光插件提供符合angular2及TS的调用方式 8 | 9 | 说在前面:如果想使用 ionic-native 的调用方式,可以参考https://github.com/zjcboy/ionic2-jpush-demo 10 | 11 | ### install 12 | 先安装官方的cordova插件 https://github.com/jpush/jpush-phonegap-plugin.git 13 | 14 | `$ cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey` 15 | 16 | 在安装本库 17 | 18 | `$ npm install ionic2-jpush --save` 19 | 20 | 21 | ### Import module 22 | 23 | ```typescript 24 | import { NgModule, ErrorHandler } from '@angular/core'; 25 | import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; 26 | import { MyApp } from './app.component'; 27 | ... 28 | import { IonJPushModule } from 'ionic2-jpush' 29 | 30 | @NgModule({ 31 | declarations: [ 32 | MyApp, 33 | ... 34 | ], 35 | imports: [ 36 | IonJPushModule, 37 | IonicModule.forRoot(MyApp) 38 | ], 39 | bootstrap: [IonicApp], 40 | entryComponents: [ 41 | MyApp, 42 | ... 43 | ], 44 | providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}] 45 | }) 46 | export class AppModule {} 47 | 48 | ``` 49 | 50 | ### Use 51 | 52 | ```typescript 53 | import 'rxjs'; 54 | import { Component } from '@angular/core'; 55 | import { Platform } from 'ionic-angular'; 56 | ... 57 | import { JPushService } from 'ionic2-jpush' 58 | 59 | @Component({ 60 | templateUrl: 'plugins-test.html' 61 | 62 | }) 63 | export class PluginsTestPage { 64 | constructor( 65 | private platform: Platform, 66 | private jPushPlugin: JPushService 67 | ) { 68 | 69 | platform.ready().then( () =>{ 70 | 71 | this.jPushPlugin.openNotification() 72 | .subscribe( res => { 73 | console.log('收到推送'); 74 | console.log(res) 75 | }); 76 | 77 | this.jPushPlugin.receiveNotification() 78 | .subscribe( res => { 79 | console.log('收到推送'); 80 | console.log(res) 81 | }); 82 | 83 | this.jPushPlugin.receiveMessage() 84 | .subscribe( res => { 85 | console.log('收到推送'); 86 | console.log(res) 87 | }); 88 | 89 | }) 90 | 91 | } 92 | 93 | /** 94 | * 注册极光 95 | */ 96 | init() { 97 | this.jPushPlugin.init() 98 | .then(res => alert(res)) 99 | .catch(err => alert(err)) 100 | } 101 | 102 | /** 103 | * 获取ID 104 | */ 105 | getRegistrationID() { 106 | this.jPushPlugin.getRegistrationID() 107 | .then(res => alert(res)) 108 | .catch(err => alert(err)) 109 | } 110 | 111 | /** 112 | * 设置标签 113 | */ 114 | setTags() { 115 | this.jPushPlugin.setTags({ 116 | sequence: Date.now(), 117 | tags: ['tag1', 'tag2'] 118 | }) 119 | .then((res:any) => { 120 | console.log(res.tags.toString()) 121 | }) 122 | .catch(err => { 123 | alert(err); 124 | console.log(err) 125 | }) 126 | } 127 | 128 | } 129 | 130 | ``` 131 | 132 | # API 133 | | 名称 | 参数 | 返回类型 | 描述 | 134 | | ------------- | ------- | ------- | ----------- | 135 | | setDebugMode | boolean | Promise | 设置 debug 模式 | 136 | | init | 无 | Promise | 注册极光 | 137 | | getRegistrationID | 无 | Promise | 获取ID | 138 | | stopPush | 无 | Promise | 停用推送 | 139 | | resumePush | 无 | Promise | 恢复推送 | 140 | | isPushStopped | 无 | Promise | 推送是否被停用 | 141 | | setTags | { sequence: number; tags: string[] }| Promise | 设置 tags | 142 | | addTags | { sequence: number; tags: string[] }| Promise | 添加 tags | 143 | | deleteTags | { sequence: number; tags: string[] }| Promise | 删除 tags | 144 | | cleanTags | { sequence: number }| Promise | 清除tags | 145 | | getAllTags | { sequence: number }| Promise | 获取所有本机设置的 tags | 146 | | setAlias | { sequence: number; alias: string }| Promise | 设置 alias | 147 | | deleteAlias | { sequence: number }| Promise | 删除 alias | 148 | | getAlias | { sequence: number }| Promise |获取本机设置的 alias | 149 | 150 | # IOS API 151 | | 名称 | 参数 | 返回类型 | 描述 | 152 | | ------------- | ------- | ------- | ----------- | 153 | | setBadge | value:number| Promise | 设置 badge 至 JPush 服务器| 154 | | reSetBadge | 无| Promise | 移除 JPush 服务器 badge | 155 | | getApplicationIconBadgeNumber | 无| Promise | 获取本地 badge | 156 | | setApplicationIconBadgeNumber | value:number| Promise | 设置本地 badge | 157 | | clearAllLocalNotifications | 无| Promise | 清除所有本地推送对象 | 158 | 159 | # Android API 160 | | 名称 | 参数 | 返回类型 | 描述 | 161 | | ------------- | ------- | ------- | ----------- | 162 | | clearNotificationById | id:number| Promise | 清除指定ID通知 | 163 | | clearAllNotification | 无 | Promise | 清除所有通知 | 164 | | setPushTime | days: number , startHour: number, endHour: number | Promise | 设置允许推送时间 | 165 | | setSilenceTime | days: number , startHour: number, endHour: number | Promise | 设置通知静默时间 | 166 | 167 | # 可订阅事件 168 | | 名称 | 参数 | 返回类型 | 描述 | 169 | | ------------- | ------- | ------- | ----------- | 170 | | openNotification | 无| Observable | 点击通知事件 | 171 | | receiveNotification | 无| Observable | 收到通知事件 | 172 | | receiveMessage | 无| Observable | 收到自定义消息事件 | 173 | | backgroundNotification | 无| Observable | 后台收到通知事件 | 174 | 175 | [npm-url]: https://www.npmjs.com/package/ionic2-jpush 176 | [npm-image]: https://img.shields.io/npm/v/ionic2-jpush.svg 177 | 178 | [downloads-image]: https://img.shields.io/npm/dm/ionic2-jpush.svg 179 | [downloads-url]: http://badge.fury.io/js/ionic2-jpush 180 | 181 | [license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat 182 | [license-url]: LICENSE 183 | -------------------------------------------------------------------------------- /demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/demo.jpg -------------------------------------------------------------------------------- /dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/dist/.DS_Store -------------------------------------------------------------------------------- /dist/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by hsuanlee on 2017/1/22. 3 | */ 4 | export { JPushService } from './plugin-jpush.service'; 5 | export { IonJPushModule } from './jpush.module'; 6 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by hsuanlee on 2017/1/22. 3 | */ 4 | export { JPushService } from './plugin-jpush.service'; 5 | export { IonJPushModule } from './jpush.module'; 6 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /dist/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC","file":"index.js","sourceRoot":""} -------------------------------------------------------------------------------- /dist/index.metadata.json: -------------------------------------------------------------------------------- 1 | [{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./plugin-jpush.service","export":["JPushService"]},{"from":"./jpush.module","export":["IonJPushModule"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./plugin-jpush.service","export":["JPushService"]},{"from":"./jpush.module","export":["IonJPushModule"]}]}] -------------------------------------------------------------------------------- /dist/jpush.module.d.ts: -------------------------------------------------------------------------------- 1 | export declare class IonJPushModule { 2 | } 3 | -------------------------------------------------------------------------------- /dist/jpush.module.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by hsuanlee on 2017/3/5. 3 | */ 4 | import { NgModule } from '@angular/core'; 5 | import { CommonModule } from '@angular/common'; 6 | import { IonicModule } from "ionic-angular"; 7 | import { JPushService } from './plugin-jpush.service'; 8 | var IonJPushModule = /** @class */ (function () { 9 | function IonJPushModule() { 10 | } 11 | IonJPushModule.decorators = [ 12 | { type: NgModule, args: [{ 13 | imports: [IonicModule, CommonModule], 14 | providers: [JPushService] 15 | },] }, 16 | ]; 17 | /** @nocollapse */ 18 | IonJPushModule.ctorParameters = function () { return []; }; 19 | return IonJPushModule; 20 | }()); 21 | export { IonJPushModule }; 22 | //# sourceMappingURL=jpush.module.js.map -------------------------------------------------------------------------------- /dist/jpush.module.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../src/jpush.module.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAA,EAAS,MAAiB,eAAA,CAAgB;AACnD,OAAO,EAAE,YAAA,EAAa,MAAO,iBAAA,CAAkB;AAC/C,OAAO,EAAA,WAAE,EAAW,MAAM,eAAA,CAAgB;AAE1C,OAAO,EAAE,YAAA,EAAa,MAAO,wBAAA,CAAA;AAG7B;IAAA;IASA,CAAC;IAToC,yBAAU,GAA0B;QACzE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBACrB,OAAO,EAAO,CAAG,WAAW,EAAE,YAAY,CAAE;oBAC5C,SAAS,EAAK,CAAE,YAAY,CAAE;iBACjC,EAAG,EAAE;KACL,CAAC;IACF,kBAAkB;IACX,6BAAc,GAAmE,cAAM,OAAA,EAC7F,EAD6F,CAC7F,CAAC;IACF,qBAAC;CATD,AASC,IAAA;SATY,cAAc","file":"jpush.module.js","sourceRoot":""} -------------------------------------------------------------------------------- /dist/jpush.module.metadata.json: -------------------------------------------------------------------------------- 1 | [{"__symbolic":"module","version":3,"metadata":{"IonJPushModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"ionic-angular","name":"IonicModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"providers":[{"__symbolic":"reference","module":"./plugin-jpush.service","name":"JPushService"}]}]}]}}},{"__symbolic":"module","version":1,"metadata":{"IonJPushModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"ionic-angular","name":"IonicModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"providers":[{"__symbolic":"reference","module":"./plugin-jpush.service","name":"JPushService"}]}]}]}}}] -------------------------------------------------------------------------------- /dist/plugin-jpush.service.d.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs/Rx'; 2 | export declare class JPushService { 3 | private jPushPlugin; 4 | warnText: string; 5 | constructor(); 6 | wrapEventObservable(event: string): Observable; 7 | initJPushPlugin(): void; 8 | setDebugMode(debug: boolean): Promise<{}>; 9 | startJPushSDK(): Promise<{}>; 10 | init(): Promise<{}>; 11 | stopPush(): Promise<{}>; 12 | resumePush(): Promise<{}>; 13 | getRegistrationID(): Promise<{}>; 14 | getUserNotificationSettings(): Promise<{}>; 15 | setLatestNotificationNum(num?: number): Promise<{}>; 16 | isPushStopped(): Promise<{}>; 17 | /** 18 | * 19 | * @param tags 20 | * @param alias 21 | * @returns {Promise} 22 | */ 23 | setTagsWithAlias(tags: Array, alias: string): Promise<{}>; 24 | /** 25 | * 26 | * @param data 27 | * @returns {Promise} 28 | */ 29 | setTags(data: string[] | { 30 | sequence: number; 31 | tags: string[]; 32 | }): Promise<{}>; 33 | addTags(data: { 34 | sequence: number; 35 | tags: string[]; 36 | }): Promise<{}>; 37 | deleteTags(data: { 38 | sequence: number; 39 | tags: string[]; 40 | }): Promise<{}>; 41 | cleanTags(data: { 42 | sequence: number; 43 | }): Promise<{}>; 44 | getAllTags(data: { 45 | sequence: number; 46 | }): Promise<{}>; 47 | checkTagBindState(data: { 48 | sequence: number; 49 | tag: string; 50 | }): Promise<{}>; 51 | /** 52 | * 53 | * @param alias 54 | * @returns {Promise} 55 | */ 56 | setAlias(alias: string | { 57 | sequence: number; 58 | alias: string; 59 | }): Promise<{}>; 60 | deleteAlias(data: { 61 | sequence: number; 62 | }): Promise<{}>; 63 | getAlias(data: { 64 | sequence: number; 65 | }): Promise<{}>; 66 | /** 67 | * 68 | * @param value 69 | * @returns {Promise} 70 | */ 71 | setBadge(value: number): Promise<{}>; 72 | reSetBadge(): Promise<{}>; 73 | clearAllLocalNotifications(): Promise<{}>; 74 | /** 75 | * 76 | * @param value 77 | * @returns {Promise} 78 | */ 79 | setApplicationIconBadgeNumber(value: number): Promise<{}>; 80 | getApplicationIconBadgeNumber(): Promise<{}>; 81 | setPushTime(days: number | null[], startHour: number, endHour: number): Promise<{}>; 82 | setSilenceTime(startHour: number, startMinute: number, endHour: number, endMinute: number): Promise<{}>; 83 | /** 84 | * 85 | * @param id 86 | * @returns {Promise} 87 | */ 88 | clearNotificationById(id: number): Promise<{}>; 89 | clearAllNotification(): Promise<{}>; 90 | /** 91 | * 92 | * @returns {Observable} 93 | */ 94 | openNotification(): Observable; 95 | /** 96 | * 97 | * @returns {Observable} 98 | */ 99 | receiveNotification(): Observable; 100 | /** 101 | * 102 | * @returns {Observable} 103 | */ 104 | receiveMessage(): Observable; 105 | backgroundNotification(): Observable; 106 | receiveRegistrationId(): Observable; 107 | } 108 | -------------------------------------------------------------------------------- /dist/plugin-jpush.service.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by youyou on 16/11/23. 3 | */ 4 | import { Injectable } from '@angular/core'; 5 | import { Observable } from 'rxjs/Rx'; 6 | var JPushService = /** @class */ (function () { 7 | function JPushService() { 8 | this.warnText = '没有找到 jPushPlugin 对象 \n也许你是在浏览器环境下运行或者没有正确安装插件; \n如果没有在Platform 的 ready 方法中调用,也会出现这样的情况。\n了解:http://ionicframework.com/docs/v2/api/platform/Platform/'; 9 | this.initJPushPlugin(); 10 | } 11 | JPushService.prototype.wrapEventObservable = function (event) { 12 | return new Observable(function (observer) { 13 | document.addEventListener(event, observer.next.bind(observer), false); 14 | return function () { return document.removeEventListener(event, observer.next.bind(observer), false); }; 15 | }); 16 | }; 17 | JPushService.prototype.initJPushPlugin = function () { 18 | if (window.plugins && window.plugins.jPushPlugin) { 19 | this.jPushPlugin = window.plugins.jPushPlugin; 20 | } 21 | else if (window.JPush) { 22 | this.jPushPlugin = window.JPush; 23 | } 24 | else { 25 | this.jPushPlugin = null; 26 | } 27 | }; 28 | JPushService.prototype.setDebugMode = function (debug) { 29 | var _this = this; 30 | this.initJPushPlugin(); 31 | return new Promise(function (resolve, reject) { 32 | if (_this.jPushPlugin) { 33 | _this.jPushPlugin.setDebugMode(debug); 34 | resolve('ok'); 35 | } 36 | else { 37 | console.warn(_this.warnText); 38 | reject('没有找到 jPushPlugin'); 39 | } 40 | }); 41 | }; 42 | JPushService.prototype.startJPushSDK = function () { 43 | var _this = this; 44 | this.initJPushPlugin(); 45 | return new Promise(function (resolve, reject) { 46 | if (_this.jPushPlugin) { 47 | _this.jPushPlugin.startJPushSDK(); 48 | resolve('ok'); 49 | } 50 | else { 51 | console.warn(_this.warnText); 52 | reject('没有找到 jPushPlugin'); 53 | } 54 | }); 55 | }; 56 | JPushService.prototype.init = function () { 57 | var _this = this; 58 | this.initJPushPlugin(); 59 | return new Promise(function (resolve, reject) { 60 | if (_this.jPushPlugin) { 61 | _this.jPushPlugin.init(); 62 | resolve('ok'); 63 | } 64 | else { 65 | console.warn(_this.warnText); 66 | reject('没有找到 jPushPlugin'); 67 | } 68 | }); 69 | }; 70 | JPushService.prototype.stopPush = function () { 71 | var _this = this; 72 | this.initJPushPlugin(); 73 | return new Promise(function (resolve, reject) { 74 | if (_this.jPushPlugin) { 75 | _this.jPushPlugin.stopPush(); 76 | resolve('ok'); 77 | } 78 | else { 79 | console.warn(_this.warnText); 80 | reject('没有找到 jPushPlugin'); 81 | } 82 | }); 83 | }; 84 | JPushService.prototype.resumePush = function () { 85 | var _this = this; 86 | this.initJPushPlugin(); 87 | return new Promise(function (resolve, reject) { 88 | if (_this.jPushPlugin) { 89 | _this.jPushPlugin.resumePush(); 90 | resolve('ok'); 91 | } 92 | else { 93 | console.warn(_this.warnText); 94 | reject('没有找到 jPushPlugin'); 95 | } 96 | }); 97 | }; 98 | JPushService.prototype.getRegistrationID = function () { 99 | var _this = this; 100 | this.initJPushPlugin(); 101 | return new Promise(function (resolve, reject) { 102 | if (_this.jPushPlugin) { 103 | _this.jPushPlugin.getRegistrationID(function (id) { 104 | if (id) { 105 | resolve(id); 106 | } 107 | else { 108 | reject('获取ID失败'); 109 | } 110 | }); 111 | } 112 | else { 113 | console.warn(_this.warnText); 114 | reject('没有找到 jPushPlugin'); 115 | } 116 | }); 117 | }; 118 | JPushService.prototype.getUserNotificationSettings = function () { 119 | var _this = this; 120 | this.initJPushPlugin(); 121 | return new Promise(function (resolve, reject) { 122 | if (_this.jPushPlugin) { 123 | _this.jPushPlugin.getUserNotificationSettings(function (result) { 124 | if (result === 0) { 125 | reject(result); 126 | } 127 | else { 128 | resolve(result); 129 | } 130 | }); 131 | } 132 | else { 133 | console.warn(_this.warnText); 134 | reject('没有找到 jPushPlugin'); 135 | } 136 | }); 137 | }; 138 | JPushService.prototype.setLatestNotificationNum = function (num) { 139 | var _this = this; 140 | if (num === void 0) { num = 5; } 141 | this.initJPushPlugin(); 142 | return new Promise(function (resolve, reject) { 143 | if (_this.jPushPlugin) { 144 | _this.jPushPlugin.setLatestNotificationNum(num); 145 | resolve('ok'); 146 | } 147 | else { 148 | console.warn(_this.warnText); 149 | reject('没有找到 jPushPlugin'); 150 | } 151 | }); 152 | }; 153 | JPushService.prototype.isPushStopped = function () { 154 | var _this = this; 155 | this.initJPushPlugin(); 156 | return new Promise(function (resolve, reject) { 157 | if (_this.jPushPlugin) { 158 | _this.jPushPlugin.isPushStopped(function (result) { 159 | resolve(result); 160 | }); 161 | } 162 | else { 163 | console.warn(_this.warnText); 164 | reject('没有找到 jPushPlugin'); 165 | } 166 | }); 167 | }; 168 | /** 169 | * 170 | * @param tags 171 | * @param alias 172 | * @returns {Promise} 173 | */ 174 | JPushService.prototype.setTagsWithAlias = function (tags, alias) { 175 | var _this = this; 176 | this.initJPushPlugin(); 177 | return new Promise(function (resolve, reject) { 178 | if (_this.jPushPlugin) { 179 | _this.jPushPlugin.setTagsWithAlias(tags, alias); 180 | resolve('ok'); 181 | } 182 | else { 183 | console.warn(_this.warnText); 184 | reject('没有找到 jPushPlugin'); 185 | } 186 | }); 187 | }; 188 | /** 189 | * 190 | * @param data 191 | * @returns {Promise} 192 | */ 193 | JPushService.prototype.setTags = function (data) { 194 | var _this = this; 195 | this.initJPushPlugin(); 196 | if (Array.isArray(data)) { 197 | return new Promise(function (resolve, reject) { 198 | if (_this.jPushPlugin) { 199 | _this.jPushPlugin.setTags(data); 200 | resolve('ok'); 201 | } 202 | else { 203 | console.warn(_this.warnText); 204 | reject('没有找到 jPushPlugin'); 205 | } 206 | }); 207 | } 208 | else if (typeof data === 'object') { 209 | return new Promise(function (resolve, reject) { 210 | if (_this.jPushPlugin) { 211 | _this.jPushPlugin.setTags(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 212 | } 213 | else { 214 | console.warn(_this.warnText); 215 | reject('没有找到 jPushPlugin'); 216 | } 217 | }); 218 | } 219 | }; 220 | JPushService.prototype.addTags = function (data) { 221 | var _this = this; 222 | this.initJPushPlugin(); 223 | return new Promise(function (resolve, reject) { 224 | if (_this.jPushPlugin) { 225 | _this.jPushPlugin.addTags(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 226 | } 227 | else { 228 | console.warn(_this.warnText); 229 | reject('没有找到 jPushPlugin'); 230 | } 231 | }); 232 | }; 233 | JPushService.prototype.deleteTags = function (data) { 234 | var _this = this; 235 | this.initJPushPlugin(); 236 | return new Promise(function (resolve, reject) { 237 | if (_this.jPushPlugin) { 238 | _this.jPushPlugin.deleteTags(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 239 | } 240 | else { 241 | console.warn(_this.warnText); 242 | reject('没有找到 jPushPlugin'); 243 | } 244 | }); 245 | }; 246 | JPushService.prototype.cleanTags = function (data) { 247 | var _this = this; 248 | this.initJPushPlugin(); 249 | return new Promise(function (resolve, reject) { 250 | if (_this.jPushPlugin) { 251 | _this.jPushPlugin.cleanTags(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 252 | } 253 | else { 254 | console.warn(_this.warnText); 255 | reject('没有找到 jPushPlugin'); 256 | } 257 | }); 258 | }; 259 | JPushService.prototype.getAllTags = function (data) { 260 | var _this = this; 261 | this.initJPushPlugin(); 262 | return new Promise(function (resolve, reject) { 263 | if (_this.jPushPlugin) { 264 | _this.jPushPlugin.getAllTags(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 265 | } 266 | else { 267 | console.warn(_this.warnText); 268 | reject('没有找到 jPushPlugin'); 269 | } 270 | }); 271 | }; 272 | JPushService.prototype.checkTagBindState = function (data) { 273 | var _this = this; 274 | this.initJPushPlugin(); 275 | return new Promise(function (resolve, reject) { 276 | if (_this.jPushPlugin) { 277 | _this.jPushPlugin.checkTagBindState(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 278 | } 279 | else { 280 | console.warn(_this.warnText); 281 | reject('没有找到 jPushPlugin'); 282 | } 283 | }); 284 | }; 285 | /** 286 | * 287 | * @param alias 288 | * @returns {Promise} 289 | */ 290 | JPushService.prototype.setAlias = function (alias) { 291 | var _this = this; 292 | this.initJPushPlugin(); 293 | if (typeof alias === 'string') { 294 | return new Promise(function (resolve, reject) { 295 | if (_this.jPushPlugin) { 296 | _this.jPushPlugin.setAlias(alias); 297 | resolve('ok'); 298 | } 299 | else { 300 | console.warn(_this.warnText); 301 | reject('没有找到 jPushPlugin'); 302 | } 303 | }); 304 | } 305 | else if (typeof alias === 'object') { 306 | return new Promise(function (resolve, reject) { 307 | if (_this.jPushPlugin) { 308 | _this.jPushPlugin.setAlias(alias, function (res) { return resolve(res); }, function (error) { return reject(error); }); 309 | } 310 | else { 311 | console.warn(_this.warnText); 312 | reject('没有找到 jPushPlugin'); 313 | } 314 | }); 315 | } 316 | }; 317 | JPushService.prototype.deleteAlias = function (data) { 318 | var _this = this; 319 | this.initJPushPlugin(); 320 | return new Promise(function (resolve, reject) { 321 | if (_this.jPushPlugin) { 322 | _this.jPushPlugin.deleteAlias(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 323 | } 324 | else { 325 | console.warn(_this.warnText); 326 | reject('没有找到 jPushPlugin'); 327 | } 328 | }); 329 | }; 330 | JPushService.prototype.getAlias = function (data) { 331 | var _this = this; 332 | this.initJPushPlugin(); 333 | return new Promise(function (resolve, reject) { 334 | if (_this.jPushPlugin) { 335 | _this.jPushPlugin.getAlias(data, function (res) { return resolve(res); }, function (error) { return reject(error); }); 336 | } 337 | else { 338 | console.warn(_this.warnText); 339 | reject('没有找到 jPushPlugin'); 340 | } 341 | }); 342 | }; 343 | /** 344 | * 345 | * @param value 346 | * @returns {Promise} 347 | */ 348 | JPushService.prototype.setBadge = function (value) { 349 | var _this = this; 350 | this.initJPushPlugin(); 351 | return new Promise(function (resolve, reject) { 352 | if (_this.jPushPlugin) { 353 | _this.jPushPlugin.setBadge(value); 354 | resolve('ok'); 355 | } 356 | else { 357 | console.warn(_this.warnText); 358 | reject('没有找到 jPushPlugin'); 359 | } 360 | }); 361 | }; 362 | JPushService.prototype.reSetBadge = function () { 363 | var _this = this; 364 | this.initJPushPlugin(); 365 | return new Promise(function (resolve, reject) { 366 | if (_this.jPushPlugin) { 367 | _this.jPushPlugin.reSetBadge(); 368 | resolve('ok'); 369 | } 370 | else { 371 | console.warn(_this.warnText); 372 | reject('没有找到 jPushPlugin'); 373 | } 374 | }); 375 | }; 376 | JPushService.prototype.clearAllLocalNotifications = function () { 377 | var _this = this; 378 | this.initJPushPlugin(); 379 | return new Promise(function (resolve, reject) { 380 | if (_this.jPushPlugin) { 381 | _this.jPushPlugin.clearAllLocalNotifications(); 382 | resolve('ok'); 383 | } 384 | else { 385 | console.warn(_this.warnText); 386 | reject('没有找到 jPushPlugin'); 387 | } 388 | }); 389 | }; 390 | /** 391 | * 392 | * @param value 393 | * @returns {Promise} 394 | */ 395 | JPushService.prototype.setApplicationIconBadgeNumber = function (value) { 396 | var _this = this; 397 | this.initJPushPlugin(); 398 | return new Promise(function (resolve, reject) { 399 | if (_this.jPushPlugin) { 400 | _this.jPushPlugin.setApplicationIconBadgeNumber(value); 401 | resolve('ok'); 402 | } 403 | else { 404 | console.warn(_this.warnText); 405 | reject('没有找到 jPushPlugin'); 406 | } 407 | }); 408 | }; 409 | JPushService.prototype.getApplicationIconBadgeNumber = function () { 410 | var _this = this; 411 | this.initJPushPlugin(); 412 | return new Promise(function (resolve, reject) { 413 | if (_this.jPushPlugin) { 414 | _this.jPushPlugin.getApplicationIconBadgeNumber(function (num) { 415 | resolve(num); 416 | }); 417 | } 418 | else { 419 | console.warn(_this.warnText); 420 | reject('没有找到 jPushPlugin'); 421 | } 422 | }); 423 | }; 424 | JPushService.prototype.setPushTime = function (days, startHour, endHour) { 425 | var _this = this; 426 | this.initJPushPlugin(); 427 | return new Promise(function (resolve, reject) { 428 | if (_this.jPushPlugin) { 429 | _this.jPushPlugin.setPushTime(days, startHour, endHour); 430 | resolve('ok'); 431 | } 432 | else { 433 | console.warn(_this.warnText); 434 | reject('没有找到 jPushPlugin'); 435 | } 436 | }); 437 | }; 438 | JPushService.prototype.setSilenceTime = function (startHour, startMinute, endHour, endMinute) { 439 | var _this = this; 440 | this.initJPushPlugin(); 441 | return new Promise(function (resolve, reject) { 442 | if (_this.jPushPlugin) { 443 | _this.jPushPlugin.setSilenceTime(startHour, startMinute, endHour, endMinute); 444 | resolve('ok'); 445 | } 446 | else { 447 | console.warn(_this.warnText); 448 | reject('没有找到 jPushPlugin'); 449 | } 450 | }); 451 | }; 452 | /** 453 | * 454 | * @param id 455 | * @returns {Promise} 456 | */ 457 | JPushService.prototype.clearNotificationById = function (id) { 458 | var _this = this; 459 | this.initJPushPlugin(); 460 | return new Promise(function (resolve, reject) { 461 | if (_this.jPushPlugin) { 462 | _this.jPushPlugin.clearNotificationById(id); 463 | resolve('ok'); 464 | } 465 | else { 466 | console.warn(_this.warnText); 467 | reject('没有找到 jPushPlugin'); 468 | } 469 | }); 470 | }; 471 | JPushService.prototype.clearAllNotification = function () { 472 | var _this = this; 473 | this.initJPushPlugin(); 474 | return new Promise(function (resolve, reject) { 475 | if (_this.jPushPlugin) { 476 | _this.jPushPlugin.clearAllNotification(); 477 | resolve('ok'); 478 | } 479 | else { 480 | console.warn(_this.warnText); 481 | reject('没有找到 jPushPlugin'); 482 | } 483 | }); 484 | }; 485 | /** 486 | * 487 | * @returns {Observable} 488 | */ 489 | JPushService.prototype.openNotification = function () { 490 | return this.wrapEventObservable('jpush.openNotification'); 491 | }; 492 | /** 493 | * 494 | * @returns {Observable} 495 | */ 496 | JPushService.prototype.receiveNotification = function () { 497 | return this.wrapEventObservable('jpush.receiveNotification'); 498 | }; 499 | /** 500 | * 501 | * @returns {Observable} 502 | */ 503 | JPushService.prototype.receiveMessage = function () { 504 | return this.wrapEventObservable('jpush.receiveMessage'); 505 | }; 506 | JPushService.prototype.backgroundNotification = function () { 507 | return this.wrapEventObservable('jpush.backgroundNotification'); 508 | }; 509 | JPushService.prototype.receiveRegistrationId = function () { 510 | return this.wrapEventObservable('jpush.receiveRegistrationId'); 511 | }; 512 | JPushService.decorators = [ 513 | { type: Injectable }, 514 | ]; 515 | /** @nocollapse */ 516 | JPushService.ctorParameters = function () { return []; }; 517 | return JPushService; 518 | }()); 519 | export { JPushService }; 520 | //# sourceMappingURL=plugin-jpush.service.js.map -------------------------------------------------------------------------------- /dist/plugin-jpush.service.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../src/plugin-jpush.service.ts"],"names":[],"mappings":"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","file":"plugin-jpush.service.js","sourceRoot":""} -------------------------------------------------------------------------------- /dist/plugin-jpush.service.metadata.json: -------------------------------------------------------------------------------- 1 | [{"__symbolic":"module","version":3,"metadata":{"JPushService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"wrapEventObservable":[{"__symbolic":"method"}],"initJPushPlugin":[{"__symbolic":"method"}],"setDebugMode":[{"__symbolic":"method"}],"startJPushSDK":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"stopPush":[{"__symbolic":"method"}],"resumePush":[{"__symbolic":"method"}],"getRegistrationID":[{"__symbolic":"method"}],"getUserNotificationSettings":[{"__symbolic":"method"}],"setLatestNotificationNum":[{"__symbolic":"method"}],"isPushStopped":[{"__symbolic":"method"}],"setTagsWithAlias":[{"__symbolic":"method"}],"setTags":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"deleteTags":[{"__symbolic":"method"}],"cleanTags":[{"__symbolic":"method"}],"getAllTags":[{"__symbolic":"method"}],"checkTagBindState":[{"__symbolic":"method"}],"setAlias":[{"__symbolic":"method"}],"deleteAlias":[{"__symbolic":"method"}],"getAlias":[{"__symbolic":"method"}],"setBadge":[{"__symbolic":"method"}],"reSetBadge":[{"__symbolic":"method"}],"clearAllLocalNotifications":[{"__symbolic":"method"}],"setApplicationIconBadgeNumber":[{"__symbolic":"method"}],"getApplicationIconBadgeNumber":[{"__symbolic":"method"}],"setPushTime":[{"__symbolic":"method"}],"setSilenceTime":[{"__symbolic":"method"}],"clearNotificationById":[{"__symbolic":"method"}],"clearAllNotification":[{"__symbolic":"method"}],"openNotification":[{"__symbolic":"method"}],"receiveNotification":[{"__symbolic":"method"}],"receiveMessage":[{"__symbolic":"method"}],"backgroundNotification":[{"__symbolic":"method"}],"receiveRegistrationId":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"JPushService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"wrapEventObservable":[{"__symbolic":"method"}],"initJPushPlugin":[{"__symbolic":"method"}],"setDebugMode":[{"__symbolic":"method"}],"startJPushSDK":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"stopPush":[{"__symbolic":"method"}],"resumePush":[{"__symbolic":"method"}],"getRegistrationID":[{"__symbolic":"method"}],"getUserNotificationSettings":[{"__symbolic":"method"}],"setLatestNotificationNum":[{"__symbolic":"method"}],"isPushStopped":[{"__symbolic":"method"}],"setTagsWithAlias":[{"__symbolic":"method"}],"setTags":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"deleteTags":[{"__symbolic":"method"}],"cleanTags":[{"__symbolic":"method"}],"getAllTags":[{"__symbolic":"method"}],"checkTagBindState":[{"__symbolic":"method"}],"setAlias":[{"__symbolic":"method"}],"deleteAlias":[{"__symbolic":"method"}],"getAlias":[{"__symbolic":"method"}],"setBadge":[{"__symbolic":"method"}],"reSetBadge":[{"__symbolic":"method"}],"clearAllLocalNotifications":[{"__symbolic":"method"}],"setApplicationIconBadgeNumber":[{"__symbolic":"method"}],"getApplicationIconBadgeNumber":[{"__symbolic":"method"}],"setPushTime":[{"__symbolic":"method"}],"setSilenceTime":[{"__symbolic":"method"}],"clearNotificationById":[{"__symbolic":"method"}],"clearAllNotification":[{"__symbolic":"method"}],"openNotification":[{"__symbolic":"method"}],"receiveNotification":[{"__symbolic":"method"}],"receiveMessage":[{"__symbolic":"method"}],"backgroundNotification":[{"__symbolic":"method"}],"receiveRegistrationId":[{"__symbolic":"method"}]}}}}] -------------------------------------------------------------------------------- /jpush-demo/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | 10 | # We recommend you to keep these unchanged 11 | end_of_line = lf 12 | charset = utf-8 13 | trim_trailing_whitespace = true 14 | insert_final_newline = true 15 | 16 | [*.md] 17 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /jpush-demo/.sourcemaps/main.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../node_modules/@angular/core/@angular lazy","../../src lazy","../../src/pages/tabs/tabs.ts","../../src/pages/about/about.ts","../../src/pages/contact/contact.ts","../../src/pages/home/home.ts","../../src/app/main.ts","../../src/app/app.module.ts","../../src/app/app.component.ts"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kC;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kC;;;;;;;;;;;;;;;;;;;;;;ACV0C;AAEC;AACM;AACT;AAKxC,IAAa,QAAQ;IAMnB;QAJA,aAAQ,GAAG,4DAAQ,CAAC;QACpB,aAAQ,GAAG,+DAAS,CAAC;QACrB,aAAQ,GAAG,qEAAW,CAAC;IAIvB,CAAC;IACH,eAAC;AAAD,CAAC;AATY,QAAQ;IAHpB,wEAAS,CAAC;OACe;KACzB,CAAC;;AAUD;SATY,QAAQ,e;;;;;;;;;;;;;;;;;;;;ACTqB;AACI;AAM9C,IAAa,SAAS;IAEpB,mBAAmB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAEzC,CAAC;IAEH,gBAAC;AAAD,CAAC;AANY,SAAS;IAJrB,wEAAS,CAAC;QACT,QAAQ,EAAE,YAAY;OACG;KAC1B,CAAC;cAGyC;AAI1C;SANY,SAAS,e;;;;;;;;;;;;;;;;;;;;ACPoB;AACI;AAM9C,IAAa,WAAW;IAEtB,qBAAmB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAEzC,CAAC;IAEH,kBAAC;AAAD,CAAC;AANY,WAAW;IAJvB,wEAAS,CAAC;QACT,QAAQ,EAAE,cAAc;OACG;KAC5B,CAAC;gBAGyC;AAI1C;SANY,WAAW,e;;;;;;;;;;;;;;;;;;;;;ACPkB;AACD;AACE;AAM3C,IAAa,QAAQ;IA+BnB,kBAAoB,QAAkB,EAAU,WAAyB;QAAzE,iBA2BC;QA3BmB,aAAQ,GAAR,QAAQ,CAAU;QAAU,gBAAW,GAAX,WAAW,CAAc;QAhBzE,eAAU,GAAY,EAAE,CAAC;QAiBvB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;YACpB,KAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;aAClC,SAAS,CAAC,aAAG;YACZ,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,KAAI,CAAC,GAAG,GAAG,yBAAyB,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;aACrC,SAAS,CAAC,aAAG;YACZ,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChB,KAAI,CAAC,GAAG,GAAG,4BAA4B,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;aAChC,SAAS,CAAC,aAAG;YACZ,KAAK,CAAC,UAAU,CAAC,CAAC;YAClB,KAAI,CAAC,GAAG,GAAG,yBAAyB,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,CAAC;IAtDD,sBAAI,yBAAG;aAAP;YACE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACzB,CAAC;aAED,UAAQ,CAAS;YACf,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,IAAI,IAAO,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,UAAK,CAAC,QAAK;QACxD,CAAC;;;OAPA;IAWD,4BAAS,GAAT,UAAU,IAAY;QACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAK,IAAI,CAAC,UAAU,SAAE,IAAI,GAAE,CAAC;IACnE,CAAC;IAED,2BAAQ,GAAR,UAAS,IAAY;QACnB,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,8BAAW,GAAX,UAAY,IAAY;QACtB,MAAM,CAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IA+BD;;OAEG;IACH,uBAAI,GAAJ;QAAA,iBAUC;QATC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;aACtB,IAAI,CAAC,aAAG;YACP,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,OAAO;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,OAAO;QACpB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gCAAa,GAAb;QAAA,iBAUC;QATC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;aAC/B,IAAI,CAAC,aAAG;YACP,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,0CAAU,GAAK;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,kDAAU;QACvB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oCAAiB,GAAjB;QAAA,iBAUC;QATC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;aACnC,IAAI,CAAC,aAAG;YACP,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,gCAAU,GAAK;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,QAAQ;QACrB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,2BAAQ,GAAR;QAAA,iBAUC;QATC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;aAC1B,IAAI,CAAC,aAAG;YACP,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,kDAAU;QACvB,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,UAAU;QACvB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,6BAAU,GAAV;QAAA,iBAUC;QATC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;aAC5B,IAAI,CAAC,aAAG;YACP,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,kDAAU;QACvB,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,SAAS;QACtB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,2BAAQ,GAAR;QAAA,iBAeC;QAdC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,KAAK,EAAE,WAAW;SACnB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,4DAAa,GAAG,CAAC,KAAO,CAAC;YACpC,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;YACpB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,8BAAW,GAAX;QAAA,iBAcC;QAbC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,sCAAQ,CAAC;YACpB,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;YACpB,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,2BAAQ,GAAR;QAAA,iBAcC;QAbC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,6DAAc,GAAG,CAAC,KAAO,CAAC;YACrC,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;YACpB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,0BAAO,GAAP;QAAA,iBAeC;QAdC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SACvB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,yCAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAI,CAAC;YAC/C,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,YAAY,CAAC;YACxB,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,0BAAO,GAAP;QAAA,iBAeC;QAdC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SACvB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,yCAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAI,CAAC;YAC/C,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,YAAY,CAAC;YACxB,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,4BAAS,GAAT;QAAA,iBAcC;QAbC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,4CAAc,CAAC;YAC1B,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,cAAc,CAAC;YAC1B,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,6BAAU,GAAV;QAAA,iBAcC;QAbC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;aACD,IAAI,CAAC,UAAC,GAAO;YACZ,KAAI,CAAC,GAAG,GAAG,mFAAqB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAI,CAAC;YACtD,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC,CAAC;aACD,KAAK,CAAC,aAAG;YACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,KAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC;YAC/B,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC;IAGH,eAAC;AAAD,CAAC;AAhRY,QAAQ;IAJpB,wEAAS,CAAC;QACT,QAAQ,EAAE,WAAW;OACG;KACzB,CAAC;aAgCyE;AAiP1E;SAhRY,QAAQ,e;;;;;;;;;;;ACRsD;AAElC;AAEzC,yGAAsB,EAAE,CAAC,eAAe,CAAC,8DAAS,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJG;AACG;AACe;AACjC;AAES;AACM;AACT;AACA;AAEO;AACM;AAEd;AAkC7C,IAAa,SAAS;IAAtB;IAAwB,CAAC;IAAD,gBAAC;AAAD,CAAC;AAAZ,SAAS;IAhCrB,uEAAQ,CAAC;QACR,YAAY,EAAE;YACZ,6DAAK;YACL,qEAAS;YACT,2EAAW;YACX,kEAAQ;YACR,kEAAQ;SACT;QACD,OAAO,EAAE;YACP,gFAAa;YACb,kEAAW,CAAC,OAAO,CAAC,6DAAK,EAAE,EAAE,EACjC;gBACE,KAAK,EAAE,EAEN;aACF,CAAC;YACE,qEAAc;SACf;QACD,SAAS,EAAE,CAAC,+DAAQ,CAAC;QACrB,eAAe,EAAE;YACf,6DAAK;YACL,qEAAS;YACT,2EAAW;YACX,kEAAQ;YACR,kEAAQ;SACT;QACD,SAAS,EAAE;YACT,2EAAS;YACT,iFAAY;YACZ,EAAC,OAAO,EAAE,mEAAY,EAAE,QAAQ,EAAE,wEAAiB,EAAC;SACrD;KACF,CAAC;GACW,SAAS,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;;AC/CoB;AACD;AACY;AACM;AAEb;AAK9C,IAAa,KAAK;IAGhB,eAAY,QAAkB,EAAE,SAAoB,EAAE,YAA0B;QAFhF,aAAQ,GAAO,kEAAQ,CAAC;QAGtB,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;YACpB,gEAAgE;YAChE,iEAAiE;YACjE,SAAS,CAAC,YAAY,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC;AAXY,KAAK;IAHjB,wEAAS,CAAC;OACc;KACxB,CAAC;UAIgF;AAQjF;SAXY,KAAK,2B","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 138;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/core/@angular lazy\n// module id = 138\n// module chunks = 0","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 181;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src lazy\n// module id = 181\n// module chunks = 0","import { Component } from '@angular/core';\n\nimport { AboutPage } from '../about/about';\nimport { ContactPage } from '../contact/contact';\nimport { HomePage } from '../home/home';\n\n@Component({\n templateUrl: 'tabs.html'\n})\nexport class TabsPage {\n\n tab1Root = HomePage;\n tab2Root = AboutPage;\n tab3Root = ContactPage;\n\n constructor() {\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/tabs.ts","import { Component } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'page-about',\n templateUrl: 'about.html'\n})\nexport class AboutPage {\n\n constructor(public navCtrl: NavController) {\n\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/about/about.ts","import { Component } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'page-contact',\n templateUrl: 'contact.html'\n})\nexport class ContactPage {\n\n constructor(public navCtrl: NavController) {\n\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/contact/contact.ts","import { Component } from '@angular/core';\nimport { Platform } from 'ionic-angular';\nimport { JPushService } from 'ionic2-jpush'\n\n@Component({\n selector: 'page-home',\n templateUrl: 'home.html'\n})\nexport class HomePage {\n\n _log: string;\n\n get log(): string {\n return this._log || '';\n }\n\n set log(m: string) {\n if (!this._log) {\n this._log = '';\n }\n this._log += `${new Date().toLocaleString()}: ${m} \\n`\n }\n\n asyncStack:string[] = [];\n\n _addStack(name: string) {\n this.asyncStack = Array.from(new Set([...this.asyncStack, name]))\n }\n\n _rmStack(name: string) {\n const index = this.asyncStack.indexOf(name);\n if (index === -1) return;\n this.asyncStack.splice(index, 1);\n }\n\n _hasInStack(name: string): boolean {\n return this.asyncStack.indexOf(name) !== -1\n }\n\n constructor(private platform: Platform, private jPushPlugin: JPushService) {\n this.log = '进入页面';\n platform.ready().then(() => {\n this.log = '设备准备就绪';\n });\n\n this.jPushPlugin.openNotification()\n .subscribe(res => {\n alert('点击通知内容');\n console.log(res);\n this.log = '点击通知内容 openNotification';\n });\n\n this.jPushPlugin.receiveNotification()\n .subscribe(res => {\n alert('收到通知推送');\n this.log = '收到通知推送 receiveNotification';\n console.log(res)\n });\n\n this.jPushPlugin.receiveMessage()\n .subscribe(res => {\n alert('收到定义消息推送');\n this.log = '收到定义消息推送 receiveMessage';\n console.log(res)\n });\n\n }\n\n /**\n * 注册极光\n */\n init() {\n this.jPushPlugin.init()\n .then(res => {\n alert(res);\n this.log = '初始化成功'\n })\n .catch(err => {\n alert(err);\n this.log = '初始化失败'\n })\n }\n\n /**\n * 推送是否停止\n */\n isPushStopped() {\n this.jPushPlugin.isPushStopped()\n .then(res => {\n alert(res);\n this.log = `查看是否停止 ${res}`\n })\n .catch(err => {\n alert(err);\n this.log = `查看是否停止失败`\n })\n }\n\n /**\n * 获取ID\n */\n getRegistrationID() {\n this.jPushPlugin.getRegistrationID()\n .then(res => {\n alert(res);\n this.log = `获取ID成功 ${res}`\n })\n .catch(err => {\n alert(err);\n this.log = '获取ID失败'\n })\n }\n\n /**\n * 停止推送\n */\n stopPush() {\n this.jPushPlugin.stopPush()\n .then(res => {\n alert(res);\n this.log = `停止推送服务成功`\n })\n .catch(err => {\n alert(err);\n this.log = '停止推送服务失败'\n })\n }\n\n /**\n * 恢复推送\n */\n resumePush() {\n this.jPushPlugin.resumePush()\n .then(res => {\n alert(res);\n this.log = `恢复推送服务成功`\n })\n .catch(err => {\n alert(err);\n this.log = '恢复推送务失败'\n })\n }\n\n /**\n * 设置别名\n */\n setAlias() {\n this._addStack('setAlias');\n this.jPushPlugin.setAlias({\n sequence: Date.now(),\n alias: 'test_alia'\n })\n .then((res:any) => {\n this.log = `设置别名成功 别名:${res.alias}`;\n this._rmStack('setAlias');\n })\n .catch(err => {\n alert(err);\n this.log = '设置别名失败';\n this._rmStack('setAlias');\n })\n }\n\n /**\n * 删除别名\n */\n deleteAlias() {\n this._addStack('deleteAlias');\n this.jPushPlugin.deleteAlias({\n sequence: Date.now(),\n })\n .then((res:any) => {\n this.log = `删除别名成功`;\n this._rmStack('deleteAlias');\n })\n .catch(err => {\n alert(err);\n this.log = '删除别名失败';\n this._rmStack('deleteAlias');\n })\n }\n\n /**\n * 获取别名\n */\n getAlias() {\n this._addStack('getAlias');\n this.jPushPlugin.getAlias({\n sequence: Date.now(),\n })\n .then((res:any) => {\n this.log = `获取别名成功: 别名:${res.alias}`;\n this._rmStack('getAlias');\n })\n .catch(err => {\n alert(err);\n this.log = '获取别名失败';\n this._rmStack('getAlias');\n })\n }\n\n /**\n * 设置标签\n */\n setTags() {\n this._addStack('setTags');\n this.jPushPlugin.setTags({\n sequence: Date.now(),\n tags: ['tag1', 'tag2']\n })\n .then((res:any) => {\n this.log = `设置 Tags 成功:${res.tags.toString()}`;\n this._rmStack('setTags');\n })\n .catch(err => {\n alert(err);\n this.log = '设置 Tags 失败';\n this._rmStack('setTags');\n })\n }\n\n /**\n * 添加标签\n */\n addTags() {\n this._addStack('addTags');\n this.jPushPlugin.addTags({\n sequence: Date.now(),\n tags: ['tag4', 'tag5']\n })\n .then((res:any) => {\n this.log = `添加 Tags 成功:${res.tags.toString()}`;\n this._rmStack('addTags');\n })\n .catch(err => {\n alert(err);\n this.log = '添加 Tags 失败';\n this._rmStack('addTags');\n })\n }\n\n /**\n * 清除所有标签\n */\n cleanTags() {\n this._addStack('cleanTags');\n this.jPushPlugin.cleanTags({\n sequence: Date.now(),\n })\n .then((res:any) => {\n this.log = `清除所有 Tags 成功`;\n this._rmStack('cleanTags');\n })\n .catch(err => {\n alert(err);\n this.log = '清除所有 Tags 失败';\n this._rmStack('cleanTags');\n })\n }\n\n /**\n * 获取当前绑定的所有标签\n */\n getAllTags() {\n this._addStack('getAllTags');\n this.jPushPlugin.getAllTags({\n sequence: Date.now(),\n })\n .then((res:any) => {\n this.log = `获取当前绑定的所有 Tags 成功:${res.tags.toString()}`;\n this._rmStack('getAllTags');\n })\n .catch(err => {\n alert(err);\n this.log = '获取当前绑定的所有 Tags 失败';\n this._rmStack('getAllTags');\n })\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/home/home.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","import { NgModule, ErrorHandler } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';\nimport { MyApp } from './app.component';\n\nimport { AboutPage } from '../pages/about/about';\nimport { ContactPage } from '../pages/contact/contact';\nimport { HomePage } from '../pages/home/home';\nimport { TabsPage } from '../pages/tabs/tabs';\n\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { SplashScreen } from '@ionic-native/splash-screen';\n\nimport { IonJPushModule } from 'ionic2-jpush'\n\n@NgModule({\n declarations: [\n MyApp,\n AboutPage,\n ContactPage,\n HomePage,\n TabsPage\n ],\n imports: [\n BrowserModule,\n IonicModule.forRoot(MyApp),\n IonJPushModule\n ],\n bootstrap: [IonicApp],\n entryComponents: [\n MyApp,\n AboutPage,\n ContactPage,\n HomePage,\n TabsPage\n ],\n providers: [\n StatusBar,\n SplashScreen,\n {provide: ErrorHandler, useClass: IonicErrorHandler}\n ]\n})\nexport class AppModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { Component } from '@angular/core';\nimport { Platform } from 'ionic-angular';\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { SplashScreen } from '@ionic-native/splash-screen';\n\nimport { TabsPage } from '../pages/tabs/tabs';\n\n@Component({\n templateUrl: 'app.html'\n})\nexport class MyApp {\n rootPage:any = TabsPage;\n\n constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {\n platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n statusBar.styleDefault();\n splashScreen.hide();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts"],"sourceRoot":""} -------------------------------------------------------------------------------- /jpush-demo/README.md: -------------------------------------------------------------------------------- 1 | This is a starter template for [Ionic](http://ionicframework.com/docs/) projects. 2 | 3 | ## How to use this template 4 | 5 | *This template does not work on its own*. The shared files for each starter are found in the [ionic2-app-base repo](https://github.com/ionic-team/ionic2-app-base). 6 | 7 | To use this template, either create a new ionic project using the ionic node.js utility, or copy the files from this repository into the [Starter App Base](https://github.com/ionic-team/ionic2-app-base). 8 | 9 | ### With the Ionic CLI: 10 | 11 | Take the name after `ionic2-starter-`, and that is the name of the template to be used when using the `ionic start` command below: 12 | 13 | ```bash 14 | $ sudo npm install -g ionic cordova 15 | $ ionic start myTabs tabs 16 | ``` 17 | 18 | Then, to run it, cd into `myTabs` and run: 19 | 20 | ```bash 21 | $ ionic cordova platform add ios 22 | $ ionic cordova run ios 23 | ``` 24 | 25 | Substitute ios for android if not on a Mac. 26 | 27 | -------------------------------------------------------------------------------- /jpush-demo/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | MyApp 4 | An awesome Ionic/Cordova app. 5 | Ionic Framework Team 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /jpush-demo/hooks/README.md: -------------------------------------------------------------------------------- 1 | 21 | # Cordova Hooks 22 | 23 | Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. Hook scripts could be defined by adding them to the special predefined folder (`/hooks`) or via configuration files (`config.xml` and `plugin.xml`) and run serially in the following order: 24 | * Application hooks from `/hooks`; 25 | * Application hooks from `config.xml`; 26 | * Plugin hooks from `plugins/.../plugin.xml`. 27 | 28 | __Remember__: Make your scripts executable. 29 | 30 | __Note__: `.cordova/hooks` directory is also supported for backward compatibility, but we don't recommend using it as it is deprecated. 31 | 32 | ## Supported hook types 33 | The following hook types are supported: 34 | 35 | after_build/ 36 | after_compile/ 37 | after_docs/ 38 | after_emulate/ 39 | after_platform_add/ 40 | after_platform_rm/ 41 | after_platform_ls/ 42 | after_plugin_add/ 43 | after_plugin_ls/ 44 | after_plugin_rm/ 45 | after_plugin_search/ 46 | after_plugin_install/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being installed 47 | after_prepare/ 48 | after_run/ 49 | after_serve/ 50 | before_build/ 51 | before_compile/ 52 | before_docs/ 53 | before_emulate/ 54 | before_platform_add/ 55 | before_platform_rm/ 56 | before_platform_ls/ 57 | before_plugin_add/ 58 | before_plugin_ls/ 59 | before_plugin_rm/ 60 | before_plugin_search/ 61 | before_plugin_install/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being installed 62 | before_plugin_uninstall/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being uninstalled 63 | before_prepare/ 64 | before_run/ 65 | before_serve/ 66 | pre_package/ <-- Windows 8 and Windows Phone only. 67 | 68 | ## Ways to define hooks 69 | ### Via '/hooks' directory 70 | To execute custom action when corresponding hook type is fired, use hook type as a name for a subfolder inside 'hooks' directory and place you script file here, for example: 71 | 72 | # script file will be automatically executed after each build 73 | hooks/after_build/after_build_custom_action.js 74 | 75 | 76 | ### Config.xml 77 | 78 | Hooks can be defined in project's `config.xml` using `` elements, for example: 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | ... 89 | 90 | 91 | 92 | 93 | 94 | 95 | ... 96 | 97 | 98 | ### Plugin hooks (plugin.xml) 99 | 100 | As a plugin developer you can define hook scripts using `` elements in a `plugin.xml` like that: 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | ... 109 | 110 | 111 | `before_plugin_install`, `after_plugin_install`, `before_plugin_uninstall` plugin hooks will be fired exclusively for the plugin being installed/uninstalled. 112 | 113 | ## Script Interface 114 | 115 | ### Javascript 116 | 117 | If you are writing hooks in Javascript you should use the following module definition: 118 | ```javascript 119 | module.exports = function(context) { 120 | ... 121 | } 122 | ``` 123 | 124 | You can make your scipts async using Q: 125 | ```javascript 126 | module.exports = function(context) { 127 | var Q = context.requireCordovaModule('q'); 128 | var deferral = new Q.defer(); 129 | 130 | setTimeout(function(){ 131 | console.log('hook.js>> end'); 132 | deferral.resolve(); 133 | }, 1000); 134 | 135 | return deferral.promise; 136 | } 137 | ``` 138 | 139 | `context` object contains hook type, executed script full path, hook options, command-line arguments passed to Cordova and top-level "cordova" object: 140 | ```json 141 | { 142 | "hook": "before_plugin_install", 143 | "scriptLocation": "c:\\script\\full\\path\\appBeforePluginInstall.js", 144 | "cmdLine": "The\\exact\\command\\cordova\\run\\with arguments", 145 | "opts": { 146 | "projectRoot":"C:\\path\\to\\the\\project", 147 | "cordova": { 148 | "platforms": ["wp8"], 149 | "plugins": ["com.plugin.withhooks"], 150 | "version": "0.21.7-dev" 151 | }, 152 | "plugin": { 153 | "id": "com.plugin.withhooks", 154 | "pluginInfo": { 155 | ... 156 | }, 157 | "platform": "wp8", 158 | "dir": "C:\\path\\to\\the\\project\\plugins\\com.plugin.withhooks" 159 | } 160 | }, 161 | "cordova": {...} 162 | } 163 | 164 | ``` 165 | `context.opts.plugin` object will only be passed to plugin hooks scripts. 166 | 167 | You can also require additional Cordova modules in your script using `context.requireCordovaModule` in the following way: 168 | ```javascript 169 | var Q = context.requireCordovaModule('q'); 170 | ``` 171 | 172 | __Note__: new module loader script interface is used for the `.js` files defined via `config.xml` or `plugin.xml` only. 173 | For compatibility reasons hook files specified via `/hooks` folders are run via Node child_process spawn, see 'Non-javascript' section below. 174 | 175 | ### Non-javascript 176 | 177 | Non-javascript scripts are run via Node child_process spawn from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables: 178 | 179 | * CORDOVA_VERSION - The version of the Cordova-CLI. 180 | * CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios). 181 | * CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer) 182 | * CORDOVA_HOOK - Path to the hook that is being executed. 183 | * CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate) 184 | 185 | If a script returns a non-zero exit code, then the parent cordova command will be aborted. 186 | 187 | ## Writing hooks 188 | 189 | We highly recommend writing your hooks using Node.js so that they are 190 | cross-platform. Some good examples are shown here: 191 | 192 | [http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/) 193 | 194 | Also, note that even if you are working on Windows, and in case your hook scripts aren't bat files (which is recommended, if you want your scripts to work in non-Windows operating systems) Cordova CLI will expect a shebang line as the first line for it to know the interpreter it needs to use to launch the script. The shebang line should match the following example: 195 | 196 | #!/usr/bin/env [name_of_interpreter_executable] 197 | -------------------------------------------------------------------------------- /jpush-demo/ionic.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jpush-demo", 3 | "app_id": "", 4 | "type": "ionic-angular", 5 | "integrations": { 6 | "cordova": {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /jpush-demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jpush-demo", 3 | "version": "0.0.1", 4 | "author": "Ionic Framework", 5 | "homepage": "http://ionicframework.com/", 6 | "private": true, 7 | "scripts": { 8 | "clean": "ionic-app-scripts clean", 9 | "build": "ionic-app-scripts build", 10 | "lint": "ionic-app-scripts lint", 11 | "ionic:build": "ionic-app-scripts build", 12 | "ionic:serve": "ionic-app-scripts serve" 13 | }, 14 | "dependencies": { 15 | "@angular/common": "4.4.4", 16 | "@angular/compiler": "4.4.4", 17 | "@angular/compiler-cli": "4.4.4", 18 | "@angular/core": "4.4.4", 19 | "@angular/forms": "4.4.4", 20 | "@angular/http": "4.4.4", 21 | "@angular/platform-browser": "4.4.4", 22 | "@angular/platform-browser-dynamic": "4.4.4", 23 | "@ionic-native/core": "4.3.2", 24 | "@ionic-native/splash-screen": "4.3.2", 25 | "@ionic-native/status-bar": "4.3.2", 26 | "@ionic/storage": "2.0.1", 27 | "cordova-android": "^6.2.3", 28 | "cordova-plugin-device": "1.1.4", 29 | "cordova-plugin-ionic-webview": "^1.1.16", 30 | "cordova-plugin-jcore": "^1.1.10", 31 | "cordova-plugin-splashscreen": "^4.0.3", 32 | "cordova-plugin-whitelist": "^1.3.1", 33 | "ionic-angular": "3.8.0", 34 | "ionic-plugin-keyboard": "^2.2.1", 35 | "ionic2-jpush": "^0.1.1", 36 | "ionicons": "3.0.0", 37 | "jpush-phonegap-plugin": "git+https://github.com/jpush/jpush-phonegap-plugin.git", 38 | "rxjs": "5.4.3", 39 | "sw-toolbox": "3.6.0", 40 | "zone.js": "0.8.18" 41 | }, 42 | "devDependencies": { 43 | "@ionic/app-scripts": "3.0.1", 44 | "typescript": "2.3.4" 45 | }, 46 | "description": "An Ionic project", 47 | "cordova": { 48 | "plugins": { 49 | "jpush-phonegap-plugin": { 50 | "APP_KEY": "xxx" 51 | }, 52 | "cordova-plugin-device": {}, 53 | "cordova-plugin-ionic-webview": {}, 54 | "cordova-plugin-splashscreen": {}, 55 | "cordova-plugin-whitelist": {}, 56 | "ionic-plugin-keyboard": {} 57 | }, 58 | "platforms": [ 59 | "android" 60 | ] 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /jpush-demo/resources/README.md: -------------------------------------------------------------------------------- 1 | These are Cordova resources. You can replace icon.png and splash.png and run 2 | `ionic cordova resources` to generate custom icons and splash screens for your 3 | app. See `ionic cordova resources --help` for details. 4 | 5 | Cordova reference documentation: 6 | 7 | - Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html 8 | - Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/ 9 | -------------------------------------------------------------------------------- /jpush-demo/resources/android/icon/drawable-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/icon/drawable-hdpi-icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/icon/drawable-mdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/icon/drawable-mdpi-icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/icon/drawable-xhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/icon/drawable-xhdpi-icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/icon/drawable-xxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/icon/drawable-xxhdpi-icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/icon/drawable-xxxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/icon/drawable-xxxhdpi-icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-land-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-land-hdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-land-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-land-ldpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-land-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-land-mdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-land-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-land-xhdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-land-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-land-xxhdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-land-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-land-xxxhdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-port-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-port-hdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-port-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-port-ldpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-port-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-port-mdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-port-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-port-xhdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-port-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-port-xxhdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/android/splash/drawable-port-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/android/splash/drawable-port-xxxhdpi-screen.png -------------------------------------------------------------------------------- /jpush-demo/resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/icon.png.md5: -------------------------------------------------------------------------------- 1 | 3f1bbdf1aefcb5ce7b60770ce907c68f -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-1024.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-40@3x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-83.5@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Landscape@~ipadpro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Landscape@~ipadpro.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Portrait@~ipadpro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Portrait@~ipadpro.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default@2x~universal~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default@2x~universal~anyany.png -------------------------------------------------------------------------------- /jpush-demo/resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /jpush-demo/resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/resources/splash.png -------------------------------------------------------------------------------- /jpush-demo/resources/splash.png.md5: -------------------------------------------------------------------------------- 1 | 0dcf1df8c92c1ece4382d3357d9f8562 -------------------------------------------------------------------------------- /jpush-demo/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { Platform } from 'ionic-angular'; 3 | import { StatusBar } from '@ionic-native/status-bar'; 4 | import { SplashScreen } from '@ionic-native/splash-screen'; 5 | 6 | import { TabsPage } from '../pages/tabs/tabs'; 7 | 8 | @Component({ 9 | templateUrl: 'app.html' 10 | }) 11 | export class MyApp { 12 | rootPage:any = TabsPage; 13 | 14 | constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) { 15 | platform.ready().then(() => { 16 | // Okay, so the platform is ready and our plugins are available. 17 | // Here you can do any higher level native things you might need. 18 | statusBar.styleDefault(); 19 | splashScreen.hide(); 20 | }); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /jpush-demo/src/app/app.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /jpush-demo/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, ErrorHandler } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; 4 | import { MyApp } from './app.component'; 5 | 6 | import { AboutPage } from '../pages/about/about'; 7 | import { ContactPage } from '../pages/contact/contact'; 8 | import { HomePage } from '../pages/home/home'; 9 | import { TabsPage } from '../pages/tabs/tabs'; 10 | 11 | import { StatusBar } from '@ionic-native/status-bar'; 12 | import { SplashScreen } from '@ionic-native/splash-screen'; 13 | 14 | import { IonJPushModule } from 'ionic2-jpush' 15 | 16 | @NgModule({ 17 | declarations: [ 18 | MyApp, 19 | AboutPage, 20 | ContactPage, 21 | HomePage, 22 | TabsPage 23 | ], 24 | imports: [ 25 | BrowserModule, 26 | IonicModule.forRoot(MyApp), 27 | IonJPushModule 28 | ], 29 | bootstrap: [IonicApp], 30 | entryComponents: [ 31 | MyApp, 32 | AboutPage, 33 | ContactPage, 34 | HomePage, 35 | TabsPage 36 | ], 37 | providers: [ 38 | StatusBar, 39 | SplashScreen, 40 | {provide: ErrorHandler, useClass: IonicErrorHandler} 41 | ] 42 | }) 43 | export class AppModule {} 44 | -------------------------------------------------------------------------------- /jpush-demo/src/app/app.scss: -------------------------------------------------------------------------------- 1 | // http://ionicframework.com/docs/theming/ 2 | 3 | 4 | // App Global Sass 5 | // -------------------------------------------------- 6 | // Put style rules here that you want to apply globally. These 7 | // styles are for the entire app and not just one component. 8 | // Additionally, this file can be also used as an entry point 9 | // to import other Sass files to be included in the output CSS. 10 | // 11 | // Shared Sass variables, which can be used to adjust Ionic's 12 | // default Sass variables, belong in "theme/variables.scss". 13 | // 14 | // To declare rules for a specific mode, create a child rule 15 | // for the .md, .ios, or .wp mode classes. The mode class is 16 | // automatically applied to the element in the app. 17 | -------------------------------------------------------------------------------- /jpush-demo/src/app/main.ts: -------------------------------------------------------------------------------- 1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 2 | 3 | import { AppModule } from './app.module'; 4 | 5 | platformBrowserDynamic().bootstrapModule(AppModule); 6 | -------------------------------------------------------------------------------- /jpush-demo/src/assets/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/src/assets/icon/favicon.ico -------------------------------------------------------------------------------- /jpush-demo/src/assets/imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/jpush-demo/src/assets/imgs/logo.png -------------------------------------------------------------------------------- /jpush-demo/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ionic App 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /jpush-demo/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Ionic", 3 | "short_name": "Ionic", 4 | "start_url": "index.html", 5 | "display": "standalone", 6 | "icons": [{ 7 | "src": "assets/imgs/logo.png", 8 | "sizes": "512x512", 9 | "type": "image/png" 10 | }], 11 | "background_color": "#4e8ef7", 12 | "theme_color": "#4e8ef7" 13 | } -------------------------------------------------------------------------------- /jpush-demo/src/pages/about/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | About 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/about/about.scss: -------------------------------------------------------------------------------- 1 | page-about { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/about/about.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { NavController } from 'ionic-angular'; 3 | 4 | @Component({ 5 | selector: 'page-about', 6 | templateUrl: 'about.html' 7 | }) 8 | export class AboutPage { 9 | 10 | constructor(public navCtrl: NavController) { 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/contact/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Contact 5 | 6 | 7 | 8 | 9 | 10 | 11 | Follow us on Twitter 12 | 13 | 14 | @ionicframework 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/contact/contact.scss: -------------------------------------------------------------------------------- 1 | page-contact { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/contact/contact.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { NavController } from 'ionic-angular'; 3 | 4 | @Component({ 5 | selector: 'page-contact', 6 | templateUrl: 'contact.html' 7 | }) 8 | export class ContactPage { 9 | 10 | constructor(public navCtrl: NavController) { 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/home/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Home 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 17 | 21 | 25 | 29 | 33 | 37 | 41 | 42 |
47 |
{{log}}
48 |
49 | 50 | 51 | 54 | 55 |
56 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/home/home.scss: -------------------------------------------------------------------------------- 1 | page-home { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/home/home.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { Platform } from 'ionic-angular'; 3 | import { JPushService } from 'ionic2-jpush' 4 | 5 | @Component({ 6 | selector: 'page-home', 7 | templateUrl: 'home.html' 8 | }) 9 | export class HomePage { 10 | 11 | _log: string; 12 | 13 | get log(): string { 14 | return this._log || ''; 15 | } 16 | 17 | set log(m: string) { 18 | if (!this._log) { 19 | this._log = ''; 20 | } 21 | this._log += `${new Date().toLocaleString()}: ${m} \n` 22 | } 23 | 24 | asyncStack:string[] = []; 25 | 26 | _addStack(name: string) { 27 | this.asyncStack = Array.from(new Set([...this.asyncStack, name])) 28 | } 29 | 30 | _rmStack(name: string) { 31 | const index = this.asyncStack.indexOf(name); 32 | if (index === -1) return; 33 | this.asyncStack.splice(index, 1); 34 | } 35 | 36 | _hasInStack(name: string): boolean { 37 | return this.asyncStack.indexOf(name) !== -1 38 | } 39 | 40 | constructor(private platform: Platform, private jPushPlugin: JPushService) { 41 | this.log = '进入页面'; 42 | platform.ready().then(() => { 43 | this.log = '设备准备就绪'; 44 | }); 45 | 46 | this.jPushPlugin.openNotification() 47 | .subscribe(res => { 48 | alert('点击通知内容'); 49 | console.log(res); 50 | this.log = '点击通知内容 openNotification'; 51 | }); 52 | 53 | this.jPushPlugin.receiveNotification() 54 | .subscribe(res => { 55 | alert('收到通知推送'); 56 | this.log = '收到通知推送 receiveNotification'; 57 | console.log(res) 58 | }); 59 | 60 | this.jPushPlugin.receiveMessage() 61 | .subscribe(res => { 62 | alert('收到定义消息推送'); 63 | this.log = '收到定义消息推送 receiveMessage'; 64 | console.log(res) 65 | }); 66 | 67 | } 68 | 69 | /** 70 | * 注册极光 71 | */ 72 | init() { 73 | this.jPushPlugin.init() 74 | .then(res => { 75 | alert(res); 76 | this.log = '初始化成功' 77 | }) 78 | .catch(err => { 79 | alert(err); 80 | this.log = '初始化失败' 81 | }) 82 | } 83 | 84 | /** 85 | * 推送是否停止 86 | */ 87 | isPushStopped() { 88 | this.jPushPlugin.isPushStopped() 89 | .then(res => { 90 | alert(res); 91 | this.log = `查看是否停止 ${res}` 92 | }) 93 | .catch(err => { 94 | alert(err); 95 | this.log = `查看是否停止失败` 96 | }) 97 | } 98 | 99 | /** 100 | * 获取ID 101 | */ 102 | getRegistrationID() { 103 | this.jPushPlugin.getRegistrationID() 104 | .then(res => { 105 | alert(res); 106 | this.log = `获取ID成功 ${res}` 107 | }) 108 | .catch(err => { 109 | alert(err); 110 | this.log = '获取ID失败' 111 | }) 112 | } 113 | 114 | /** 115 | * 停止推送 116 | */ 117 | stopPush() { 118 | this.jPushPlugin.stopPush() 119 | .then(res => { 120 | alert(res); 121 | this.log = `停止推送服务成功` 122 | }) 123 | .catch(err => { 124 | alert(err); 125 | this.log = '停止推送服务失败' 126 | }) 127 | } 128 | 129 | /** 130 | * 恢复推送 131 | */ 132 | resumePush() { 133 | this.jPushPlugin.resumePush() 134 | .then(res => { 135 | alert(res); 136 | this.log = `恢复推送服务成功` 137 | }) 138 | .catch(err => { 139 | alert(err); 140 | this.log = '恢复推送务失败' 141 | }) 142 | } 143 | 144 | /** 145 | * 设置别名 146 | */ 147 | setAlias() { 148 | this._addStack('setAlias'); 149 | this.jPushPlugin.setAlias({ 150 | sequence: Date.now(), 151 | alias: 'test_alia' 152 | }) 153 | .then((res:any) => { 154 | this.log = `设置别名成功 别名:${res.alias}`; 155 | this._rmStack('setAlias'); 156 | }) 157 | .catch(err => { 158 | alert(err); 159 | this.log = '设置别名失败'; 160 | this._rmStack('setAlias'); 161 | }) 162 | } 163 | 164 | /** 165 | * 删除别名 166 | */ 167 | deleteAlias() { 168 | this._addStack('deleteAlias'); 169 | this.jPushPlugin.deleteAlias({ 170 | sequence: Date.now(), 171 | }) 172 | .then((res:any) => { 173 | this.log = `删除别名成功`; 174 | this._rmStack('deleteAlias'); 175 | }) 176 | .catch(err => { 177 | alert(err); 178 | this.log = '删除别名失败'; 179 | this._rmStack('deleteAlias'); 180 | }) 181 | } 182 | 183 | /** 184 | * 获取别名 185 | */ 186 | getAlias() { 187 | this._addStack('getAlias'); 188 | this.jPushPlugin.getAlias({ 189 | sequence: Date.now(), 190 | }) 191 | .then((res:any) => { 192 | this.log = `获取别名成功: 别名:${res.alias}`; 193 | this._rmStack('getAlias'); 194 | }) 195 | .catch(err => { 196 | alert(err); 197 | this.log = '获取别名失败'; 198 | this._rmStack('getAlias'); 199 | }) 200 | } 201 | 202 | /** 203 | * 设置标签 204 | */ 205 | setTags() { 206 | this._addStack('setTags'); 207 | this.jPushPlugin.setTags({ 208 | sequence: Date.now(), 209 | tags: ['tag1', 'tag2'] 210 | }) 211 | .then((res:any) => { 212 | this.log = `设置 Tags 成功:${res.tags.toString()}`; 213 | this._rmStack('setTags'); 214 | }) 215 | .catch(err => { 216 | alert(err); 217 | this.log = '设置 Tags 失败'; 218 | this._rmStack('setTags'); 219 | }) 220 | } 221 | 222 | /** 223 | * 添加标签 224 | */ 225 | addTags() { 226 | this._addStack('addTags'); 227 | this.jPushPlugin.addTags({ 228 | sequence: Date.now(), 229 | tags: ['tag4', 'tag5'] 230 | }) 231 | .then((res:any) => { 232 | this.log = `添加 Tags 成功:${res.tags.toString()}`; 233 | this._rmStack('addTags'); 234 | }) 235 | .catch(err => { 236 | alert(err); 237 | this.log = '添加 Tags 失败'; 238 | this._rmStack('addTags'); 239 | }) 240 | } 241 | 242 | /** 243 | * 清除所有标签 244 | */ 245 | cleanTags() { 246 | this._addStack('cleanTags'); 247 | this.jPushPlugin.cleanTags({ 248 | sequence: Date.now(), 249 | }) 250 | .then((res:any) => { 251 | this.log = `清除所有 Tags 成功`; 252 | this._rmStack('cleanTags'); 253 | }) 254 | .catch(err => { 255 | alert(err); 256 | this.log = '清除所有 Tags 失败'; 257 | this._rmStack('cleanTags'); 258 | }) 259 | } 260 | 261 | /** 262 | * 获取当前绑定的所有标签 263 | */ 264 | getAllTags() { 265 | this._addStack('getAllTags'); 266 | this.jPushPlugin.getAllTags({ 267 | sequence: Date.now(), 268 | }) 269 | .then((res:any) => { 270 | this.log = `获取当前绑定的所有 Tags 成功:${res.tags.toString()}`; 271 | this._rmStack('getAllTags'); 272 | }) 273 | .catch(err => { 274 | alert(err); 275 | this.log = '获取当前绑定的所有 Tags 失败'; 276 | this._rmStack('getAllTags'); 277 | }) 278 | } 279 | 280 | 281 | } 282 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/tabs/tabs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /jpush-demo/src/pages/tabs/tabs.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | import { AboutPage } from '../about/about'; 4 | import { ContactPage } from '../contact/contact'; 5 | import { HomePage } from '../home/home'; 6 | 7 | @Component({ 8 | templateUrl: 'tabs.html' 9 | }) 10 | export class TabsPage { 11 | 12 | tab1Root = HomePage; 13 | tab2Root = AboutPage; 14 | tab3Root = ContactPage; 15 | 16 | constructor() { 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jpush-demo/src/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check out https://googlechromelabs.github.io/sw-toolbox/ for 3 | * more info on how to use sw-toolbox to custom configure your service worker. 4 | */ 5 | 6 | 7 | 'use strict'; 8 | importScripts('./build/sw-toolbox.js'); 9 | 10 | self.toolbox.options.cache = { 11 | name: 'ionic-cache' 12 | }; 13 | 14 | // pre-cache our key assets 15 | self.toolbox.precache( 16 | [ 17 | './build/main.js', 18 | './build/vendor.js', 19 | './build/main.css', 20 | './build/polyfills.js', 21 | 'index.html', 22 | 'manifest.json' 23 | ] 24 | ); 25 | 26 | // dynamically cache any other local assets 27 | self.toolbox.router.any('/*', self.toolbox.fastest); 28 | 29 | // for any other requests go to the network, cache, 30 | // and then only use that cached resource if your user goes offline 31 | self.toolbox.router.default = self.toolbox.networkFirst; 32 | -------------------------------------------------------------------------------- /jpush-demo/src/theme/variables.scss: -------------------------------------------------------------------------------- 1 | // Ionic Variables and Theming. For more info, please see: 2 | // http://ionicframework.com/docs/theming/ 3 | 4 | // Font path is used to include ionicons, 5 | // roboto, and noto sans fonts 6 | $font-path: "../assets/fonts"; 7 | 8 | 9 | // The app direction is used to include 10 | // rtl styles in your app. For more info, please see: 11 | // http://ionicframework.com/docs/theming/rtl-support/ 12 | $app-direction: ltr; 13 | 14 | 15 | @import "ionic.globals"; 16 | 17 | 18 | // Shared Variables 19 | // -------------------------------------------------- 20 | // To customize the look and feel of this app, you can override 21 | // the Sass variables found in Ionic's source scss files. 22 | // To view all the possible Ionic variables, see: 23 | // http://ionicframework.com/docs/theming/overriding-ionic-variables/ 24 | 25 | 26 | 27 | 28 | // Named Color Variables 29 | // -------------------------------------------------- 30 | // Named colors makes it easy to reuse colors on various components. 31 | // It's highly recommended to change the default colors 32 | // to match your app's branding. Ionic uses a Sass map of 33 | // colors so you can add, rename and remove colors as needed. 34 | // The "primary" color is the only required color in the map. 35 | 36 | $colors: ( 37 | primary: #488aff, 38 | secondary: #32db64, 39 | danger: #f53d3d, 40 | light: #f4f4f4, 41 | dark: #222 42 | ); 43 | 44 | 45 | // App iOS Variables 46 | // -------------------------------------------------- 47 | // iOS only Sass variables can go here 48 | 49 | 50 | 51 | 52 | // App Material Design Variables 53 | // -------------------------------------------------- 54 | // Material Design only Sass variables can go here 55 | 56 | 57 | 58 | 59 | // App Windows Variables 60 | // -------------------------------------------------- 61 | // Windows only Sass variables can go here 62 | 63 | 64 | 65 | 66 | // App Theme 67 | // -------------------------------------------------- 68 | // Ionic apps can have different themes applied, which can 69 | // then be future customized. This import comes last 70 | // so that the above variables are used and Ionic's 71 | // default are overridden. 72 | 73 | @import "ionic.theme.default"; 74 | 75 | 76 | // Ionicons 77 | // -------------------------------------------------- 78 | // The premium icon font for Ionic. For more info, please see: 79 | // http://ionicframework.com/docs/ionicons/ 80 | 81 | @import "ionic.ionicons"; 82 | 83 | 84 | // Fonts 85 | // -------------------------------------------------- 86 | 87 | @import "roboto"; 88 | @import "noto-sans"; 89 | -------------------------------------------------------------------------------- /jpush-demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "declaration": false, 5 | "emitDecoratorMetadata": true, 6 | "experimentalDecorators": true, 7 | "lib": [ 8 | "dom", 9 | "es2015" 10 | ], 11 | "module": "es2015", 12 | "moduleResolution": "node", 13 | "sourceMap": true, 14 | "target": "es5" 15 | }, 16 | "include": [ 17 | "src/**/*.ts" 18 | ], 19 | "exclude": [ 20 | "node_modules" 21 | ], 22 | "compileOnSave": false, 23 | "atom": { 24 | "rewriteTsconfig": false 25 | } 26 | } -------------------------------------------------------------------------------- /jpush-demo/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-duplicate-variable": true, 4 | "no-unused-variable": [ 5 | true 6 | ] 7 | }, 8 | "rulesDirectory": [ 9 | "node_modules/tslint-eslint-rules/dist/rules" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic2-jpush", 3 | "version": "0.1.0-beta.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@angular/common": { 8 | "version": "2.2.1", 9 | "resolved": "https://registry.npmjs.org/@angular/common/-/common-2.2.1.tgz", 10 | "integrity": "sha1-rXmWqGW3sR/DFTY4J/JBSkjGWJw=", 11 | "dev": true 12 | }, 13 | "@angular/compiler": { 14 | "version": "2.2.1", 15 | "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-2.2.1.tgz", 16 | "integrity": "sha1-Fuf69YjPkSGg9sFtC64oMPTK/cE=", 17 | "dev": true 18 | }, 19 | "@angular/compiler-cli": { 20 | "version": "2.2.1", 21 | "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-2.2.1.tgz", 22 | "integrity": "sha1-FmRpuIHWOUbMPkXEeofSts2QI4Y=", 23 | "dev": true, 24 | "requires": { 25 | "@angular/tsc-wrapped": "0.3.0", 26 | "minimist": "1.2.0", 27 | "reflect-metadata": "0.1.10" 28 | } 29 | }, 30 | "@angular/core": { 31 | "version": "2.2.1", 32 | "resolved": "https://registry.npmjs.org/@angular/core/-/core-2.2.1.tgz", 33 | "integrity": "sha1-hv3DSjcKT8/oTtneSzxDVIYSkZw=", 34 | "dev": true 35 | }, 36 | "@angular/forms": { 37 | "version": "2.2.1", 38 | "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-2.2.1.tgz", 39 | "integrity": "sha1-DnFUrMUSfFg7S1LFnqxF1nLCnaQ=", 40 | "dev": true 41 | }, 42 | "@angular/http": { 43 | "version": "2.2.1", 44 | "resolved": "https://registry.npmjs.org/@angular/http/-/http-2.2.1.tgz", 45 | "integrity": "sha1-FiaISmxfDMYCzp2B50IPzALbM1M=", 46 | "dev": true 47 | }, 48 | "@angular/platform-browser": { 49 | "version": "2.2.1", 50 | "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-2.2.1.tgz", 51 | "integrity": "sha1-1Rs2JgCJ8wVOdF760FmTUj1aUpM=", 52 | "dev": true 53 | }, 54 | "@angular/platform-browser-dynamic": { 55 | "version": "2.2.1", 56 | "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.2.1.tgz", 57 | "integrity": "sha1-Vh0ymC/uS2i0dLpHTH88TZS/62w=", 58 | "dev": true 59 | }, 60 | "@angular/platform-server": { 61 | "version": "2.2.1", 62 | "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-2.2.1.tgz", 63 | "integrity": "sha1-/aesxxE7/FjsnXKgovzGpuXFIms=", 64 | "dev": true, 65 | "requires": { 66 | "parse5": "2.2.3" 67 | } 68 | }, 69 | "@angular/tsc-wrapped": { 70 | "version": "0.3.0", 71 | "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-0.3.0.tgz", 72 | "integrity": "sha1-mM3rXDjRRbGHwK0Dl6jZiyF/M/I=", 73 | "dev": true, 74 | "requires": { 75 | "tsickle": "0.1.7" 76 | } 77 | }, 78 | "@types/core-js": { 79 | "version": "0.9.43", 80 | "resolved": "https://registry.npmjs.org/@types/core-js/-/core-js-0.9.43.tgz", 81 | "integrity": "sha512-Y11dktBJ5YwKXX8DfHSb9V6shXKSHN5P2URPZLHTRjX3OsO/u8u1kZnSJvsuSH74aTg8f5ZKcpEeCdIJOcBkHg==", 82 | "dev": true 83 | }, 84 | "amdefine": { 85 | "version": "1.0.1", 86 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 87 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 88 | "dev": true 89 | }, 90 | "ionic-angular": { 91 | "version": "2.0.0", 92 | "resolved": "https://registry.npmjs.org/ionic-angular/-/ionic-angular-2.0.0.tgz", 93 | "integrity": "sha1-XyRHwagS5ZBdoPYpX0q2cv901Dg=", 94 | "dev": true 95 | }, 96 | "minimist": { 97 | "version": "1.2.0", 98 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 99 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 100 | "dev": true 101 | }, 102 | "mkdirp": { 103 | "version": "0.5.1", 104 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 105 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 106 | "dev": true, 107 | "requires": { 108 | "minimist": "0.0.8" 109 | }, 110 | "dependencies": { 111 | "minimist": { 112 | "version": "0.0.8", 113 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 114 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 115 | "dev": true 116 | } 117 | } 118 | }, 119 | "parse5": { 120 | "version": "2.2.3", 121 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", 122 | "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=", 123 | "dev": true 124 | }, 125 | "reflect-metadata": { 126 | "version": "0.1.10", 127 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", 128 | "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=", 129 | "dev": true 130 | }, 131 | "rxjs": { 132 | "version": "5.0.0-beta.12", 133 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.0.0-beta.12.tgz", 134 | "integrity": "sha1-zf3i2MRjnSCud5S/+P3fMtp60zc=", 135 | "dev": true, 136 | "requires": { 137 | "symbol-observable": "1.0.4" 138 | } 139 | }, 140 | "source-map": { 141 | "version": "0.4.4", 142 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 143 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 144 | "dev": true, 145 | "requires": { 146 | "amdefine": "1.0.1" 147 | } 148 | }, 149 | "source-map-support": { 150 | "version": "0.3.3", 151 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", 152 | "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", 153 | "dev": true, 154 | "requires": { 155 | "source-map": "0.1.32" 156 | }, 157 | "dependencies": { 158 | "source-map": { 159 | "version": "0.1.32", 160 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", 161 | "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", 162 | "dev": true, 163 | "requires": { 164 | "amdefine": "1.0.1" 165 | } 166 | } 167 | } 168 | }, 169 | "symbol-observable": { 170 | "version": "1.0.4", 171 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", 172 | "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=", 173 | "dev": true 174 | }, 175 | "tsickle": { 176 | "version": "0.1.7", 177 | "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.1.7.tgz", 178 | "integrity": "sha1-v+j0zc2vmkC4SnKaOEgML4JPGKs=", 179 | "dev": true, 180 | "requires": { 181 | "minimist": "1.2.0", 182 | "mkdirp": "0.5.1", 183 | "source-map": "0.4.4", 184 | "source-map-support": "0.3.3" 185 | } 186 | }, 187 | "typescript": { 188 | "version": "2.0.9", 189 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.0.9.tgz", 190 | "integrity": "sha1-tPX+zD9E1ccX87PnwzHlu7FHpT0=", 191 | "dev": true 192 | }, 193 | "zone.js": { 194 | "version": "0.6.26", 195 | "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.6.26.tgz", 196 | "integrity": "sha1-BnwTuLgCI6ibYuncgmgPCXYsRjY=", 197 | "dev": true 198 | } 199 | } 200 | } 201 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic2-jpush", 3 | "version": "0.1.1", 4 | "description": "ionic2 jPush", 5 | "main": "./dist/index.js", 6 | "typings": "./dist/index.d.ts", 7 | "scripts": { 8 | "ngc": "ngc", 9 | "test": "echo \"Error: no test specified\" && exit 1", 10 | "build": "rm -rf aot dist && npm run ngc" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/HsuanXyz/ionic2-jpush.git" 15 | }, 16 | "devDependencies": { 17 | "@angular/common": "4.4.3", 18 | "@angular/compiler": "4.4.3", 19 | "@angular/compiler-cli": "4.4.3", 20 | "@angular/core": "4.4.3", 21 | "@angular/forms": "4.4.3", 22 | "@angular/http": "4.4.3", 23 | "@angular/platform-browser": "4.4.3", 24 | "@angular/platform-browser-dynamic": "4.4.3", 25 | "@ionic-native/core": "4.3.0", 26 | "@ionic-native/splash-screen": "4.3.0", 27 | "@ionic-native/status-bar": "4.3.0", 28 | "@ionic/storage": "2.0.1", 29 | "ionic-angular": "3.7.1", 30 | "ionicons": "3.0.0", 31 | "moment": "^2.19.1", 32 | "rxjs": "5.4.3", 33 | "sw-toolbox": "3.6.0", 34 | "tslint": "^5.3.2", 35 | "tslint-eslint-rules": "^4.1.1", 36 | "typescript": "^2.5.3", 37 | "zone.js": "0.8.10" 38 | }, 39 | "keywords": [ 40 | "ionic2", 41 | "jpush", 42 | "push" 43 | ], 44 | "author": "HsuanLee", 45 | "license": "MIT" 46 | } 47 | -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hsuanxyz/ionic2-jpush/32adfcc0187307d92ddab02dc50f640fdf714c87/src/.DS_Store -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by hsuanlee on 2017/1/22. 3 | */ 4 | export { JPushService } from './plugin-jpush.service'; 5 | export { IonJPushModule } from './jpush.module'; 6 | -------------------------------------------------------------------------------- /src/jpush.module.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by hsuanlee on 2017/3/5. 3 | */ 4 | import { NgModule } from '@angular/core'; 5 | import { CommonModule } from '@angular/common'; 6 | import {IonicModule} from "ionic-angular"; 7 | 8 | import { JPushService } from './plugin-jpush.service' 9 | 10 | @NgModule({ 11 | imports: [ IonicModule, CommonModule ], 12 | providers: [ JPushService ] 13 | }) 14 | export class IonJPushModule { } -------------------------------------------------------------------------------- /src/plugin-jpush.service.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by youyou on 16/11/23. 3 | */ 4 | import { Injectable } from '@angular/core'; 5 | import { Observable } from 'rxjs/Rx'; 6 | 7 | declare var plugins: any; 8 | declare var document: any; 9 | 10 | @Injectable() 11 | export class JPushService { 12 | 13 | private jPushPlugin: any; 14 | warnText: string = '没有找到 jPushPlugin 对象 \n也许你是在浏览器环境下运行或者没有正确安装插件; \n如果没有在Platform 的 ready 方法中调用,也会出现这样的情况。\n了解:http://ionicframework.com/docs/v2/api/platform/Platform/'; 15 | 16 | constructor() { 17 | this.initJPushPlugin() 18 | } 19 | 20 | wrapEventObservable(event: string): Observable { 21 | return new Observable((observer: any) => { 22 | document.addEventListener(event, observer.next.bind(observer), false); 23 | return () => document.removeEventListener(event, observer.next.bind(observer), false); 24 | }); 25 | } 26 | 27 | initJPushPlugin() { 28 | if ((window).plugins && (window).plugins.jPushPlugin) { 29 | this.jPushPlugin = (window).plugins.jPushPlugin 30 | } else if ((window).JPush) { 31 | this.jPushPlugin = (window).JPush 32 | } else { 33 | this.jPushPlugin = null 34 | } 35 | } 36 | 37 | setDebugMode(debug: boolean) { 38 | this.initJPushPlugin(); 39 | return new Promise((resolve, reject) => { 40 | 41 | if (this.jPushPlugin) { 42 | this.jPushPlugin.setDebugMode(debug); 43 | resolve('ok') 44 | } else { 45 | console.warn(this.warnText); 46 | reject('没有找到 jPushPlugin'); 47 | } 48 | }) 49 | } 50 | 51 | startJPushSDK() { 52 | this.initJPushPlugin(); 53 | return new Promise((resolve, reject) => { 54 | 55 | if (this.jPushPlugin) { 56 | this.jPushPlugin.startJPushSDK(); 57 | resolve('ok') 58 | } else { 59 | console.warn(this.warnText); 60 | reject('没有找到 jPushPlugin'); 61 | } 62 | }) 63 | } 64 | 65 | init() { 66 | this.initJPushPlugin(); 67 | return new Promise((resolve, reject) => { 68 | 69 | if (this.jPushPlugin) { 70 | this.jPushPlugin.init(); 71 | resolve('ok') 72 | } else { 73 | console.warn(this.warnText); 74 | reject('没有找到 jPushPlugin'); 75 | } 76 | }) 77 | } 78 | 79 | stopPush() { 80 | this.initJPushPlugin(); 81 | 82 | return new Promise((resolve, reject) => { 83 | 84 | if (this.jPushPlugin) { 85 | this.jPushPlugin.stopPush(); 86 | resolve('ok') 87 | } else { 88 | console.warn(this.warnText); 89 | reject('没有找到 jPushPlugin'); 90 | } 91 | }) 92 | } 93 | 94 | resumePush() { 95 | this.initJPushPlugin(); 96 | return new Promise((resolve, reject) => { 97 | if (this.jPushPlugin) { 98 | this.jPushPlugin.resumePush(); 99 | 100 | resolve('ok') 101 | } else { 102 | console.warn(this.warnText); 103 | reject('没有找到 jPushPlugin'); 104 | } 105 | }) 106 | } 107 | 108 | getRegistrationID() { 109 | this.initJPushPlugin(); 110 | 111 | return new Promise((resolve, reject) => { 112 | 113 | if (this.jPushPlugin) { 114 | this.jPushPlugin.getRegistrationID((id: any) => { 115 | if (id) { 116 | resolve(id) 117 | } else { 118 | reject('获取ID失败') 119 | } 120 | }) 121 | } else { 122 | console.warn(this.warnText); 123 | reject('没有找到 jPushPlugin'); 124 | } 125 | 126 | 127 | }) 128 | } 129 | 130 | getUserNotificationSettings() { 131 | this.initJPushPlugin(); 132 | return new Promise((resolve, reject) => { 133 | if (this.jPushPlugin) { 134 | this.jPushPlugin.getUserNotificationSettings((result: any) => { 135 | if (result === 0) { 136 | reject(result) 137 | } else { 138 | resolve(result) 139 | } 140 | }) 141 | } else { 142 | console.warn(this.warnText); 143 | reject('没有找到 jPushPlugin'); 144 | } 145 | }) 146 | } 147 | 148 | setLatestNotificationNum(num = 5) { 149 | this.initJPushPlugin(); 150 | return new Promise((resolve, reject) => { 151 | 152 | if (this.jPushPlugin) { 153 | this.jPushPlugin.setLatestNotificationNum(num); 154 | resolve('ok') 155 | } else { 156 | console.warn(this.warnText); 157 | reject('没有找到 jPushPlugin'); 158 | } 159 | }) 160 | } 161 | 162 | 163 | isPushStopped() { 164 | this.initJPushPlugin(); 165 | return new Promise((resolve, reject) => { 166 | 167 | if (this.jPushPlugin) { 168 | this.jPushPlugin.isPushStopped((result: any) => { 169 | resolve(result) 170 | }) 171 | } else { 172 | console.warn(this.warnText); 173 | reject('没有找到 jPushPlugin'); 174 | } 175 | 176 | 177 | }) 178 | } 179 | 180 | /** 181 | * 182 | * @param tags 183 | * @param alias 184 | * @returns {Promise} 185 | */ 186 | setTagsWithAlias(tags: Array, alias: string) { 187 | this.initJPushPlugin(); 188 | return new Promise((resolve, reject) => { 189 | if (this.jPushPlugin) { 190 | this.jPushPlugin.setTagsWithAlias(tags, alias); 191 | resolve('ok') 192 | } else { 193 | console.warn(this.warnText); 194 | reject('没有找到 jPushPlugin'); 195 | } 196 | }) 197 | } 198 | 199 | /** 200 | * 201 | * @param data 202 | * @returns {Promise} 203 | */ 204 | setTags(data: string[] | { sequence: number; tags: string[] }) { 205 | this.initJPushPlugin(); 206 | 207 | if (Array.isArray(data)) { 208 | return new Promise((resolve, reject) => { 209 | if (this.jPushPlugin) { 210 | this.jPushPlugin.setTags(data); 211 | resolve('ok') 212 | } else { 213 | console.warn(this.warnText); 214 | reject('没有找到 jPushPlugin'); 215 | } 216 | }) 217 | } else if (typeof data === 'object') { 218 | return new Promise((resolve, reject) => { 219 | if (this.jPushPlugin) { 220 | this.jPushPlugin.setTags( 221 | data, 222 | (res: any) => resolve(res), 223 | (error: any) => reject(error) 224 | ); 225 | } else { 226 | console.warn(this.warnText); 227 | reject('没有找到 jPushPlugin'); 228 | } 229 | }) 230 | } 231 | } 232 | 233 | addTags(data: { sequence: number; tags: string[] }) { 234 | this.initJPushPlugin(); 235 | 236 | return new Promise((resolve, reject) => { 237 | if (this.jPushPlugin) { 238 | this.jPushPlugin.addTags( 239 | data, 240 | (res: any) => resolve(res), 241 | (error: any) => reject(error) 242 | ); 243 | } else { 244 | console.warn(this.warnText); 245 | reject('没有找到 jPushPlugin'); 246 | } 247 | }) 248 | } 249 | 250 | deleteTags(data: { sequence: number; tags: string[] }) { 251 | this.initJPushPlugin(); 252 | 253 | return new Promise((resolve, reject) => { 254 | if (this.jPushPlugin) { 255 | this.jPushPlugin.deleteTags( 256 | data, 257 | (res: any) => resolve(res), 258 | (error: any) => reject(error) 259 | ); 260 | } else { 261 | console.warn(this.warnText); 262 | reject('没有找到 jPushPlugin'); 263 | } 264 | }) 265 | } 266 | 267 | cleanTags(data: { sequence: number }) { 268 | this.initJPushPlugin(); 269 | 270 | return new Promise((resolve, reject) => { 271 | if (this.jPushPlugin) { 272 | this.jPushPlugin.cleanTags( 273 | data, 274 | (res: any) => resolve(res), 275 | (error: any) => reject(error) 276 | ); 277 | } else { 278 | console.warn(this.warnText); 279 | reject('没有找到 jPushPlugin'); 280 | } 281 | }) 282 | } 283 | 284 | getAllTags(data: { sequence: number }) { 285 | this.initJPushPlugin(); 286 | 287 | return new Promise((resolve, reject) => { 288 | if (this.jPushPlugin) { 289 | this.jPushPlugin.getAllTags( 290 | data, 291 | (res: any) => resolve(res), 292 | (error: any) => reject(error) 293 | ); 294 | } else { 295 | console.warn(this.warnText); 296 | reject('没有找到 jPushPlugin'); 297 | } 298 | }) 299 | } 300 | 301 | checkTagBindState(data: { sequence: number, tag: string }) { 302 | this.initJPushPlugin(); 303 | 304 | return new Promise((resolve, reject) => { 305 | if (this.jPushPlugin) { 306 | this.jPushPlugin.checkTagBindState( 307 | data, 308 | (res: any) => resolve(res), 309 | (error: any) => reject(error) 310 | ); 311 | } else { 312 | console.warn(this.warnText); 313 | reject('没有找到 jPushPlugin'); 314 | } 315 | }) 316 | } 317 | 318 | /** 319 | * 320 | * @param alias 321 | * @returns {Promise} 322 | */ 323 | setAlias(alias: string | { sequence: number; alias: string }) { 324 | this.initJPushPlugin(); 325 | if (typeof alias === 'string') { 326 | return new Promise((resolve, reject) => { 327 | if (this.jPushPlugin) { 328 | this.jPushPlugin.setAlias(alias); 329 | resolve('ok') 330 | } else { 331 | console.warn(this.warnText); 332 | reject('没有找到 jPushPlugin'); 333 | } 334 | }) 335 | } else if (typeof alias === 'object') { 336 | return new Promise((resolve, reject) => { 337 | if (this.jPushPlugin) { 338 | this.jPushPlugin.setAlias( 339 | alias, 340 | (res: any) => resolve(res), 341 | (error: any) => reject(error) 342 | ); 343 | } else { 344 | console.warn(this.warnText); 345 | reject('没有找到 jPushPlugin'); 346 | } 347 | }) 348 | } 349 | 350 | } 351 | 352 | deleteAlias(data: { sequence: number }) { 353 | this.initJPushPlugin(); 354 | return new Promise((resolve, reject) => { 355 | if (this.jPushPlugin) { 356 | this.jPushPlugin.deleteAlias( 357 | data, 358 | (res: any) => resolve(res), 359 | (error: any) => reject(error) 360 | ); 361 | } else { 362 | console.warn(this.warnText); 363 | reject('没有找到 jPushPlugin'); 364 | } 365 | }) 366 | } 367 | 368 | getAlias(data: { sequence: number }) { 369 | this.initJPushPlugin(); 370 | return new Promise((resolve, reject) => { 371 | if (this.jPushPlugin) { 372 | this.jPushPlugin.getAlias( 373 | data, 374 | (res: any) => resolve(res), 375 | (error: any) => reject(error) 376 | ); 377 | } else { 378 | console.warn(this.warnText); 379 | reject('没有找到 jPushPlugin'); 380 | } 381 | }) 382 | } 383 | 384 | /** 385 | * 386 | * @param value 387 | * @returns {Promise} 388 | */ 389 | setBadge(value: number) { 390 | this.initJPushPlugin(); 391 | return new Promise((resolve, reject) => { 392 | if (this.jPushPlugin) { 393 | this.jPushPlugin.setBadge(value); 394 | resolve('ok') 395 | } else { 396 | console.warn(this.warnText); 397 | reject('没有找到 jPushPlugin'); 398 | } 399 | }) 400 | 401 | } 402 | 403 | reSetBadge() { 404 | this.initJPushPlugin(); 405 | 406 | return new Promise((resolve, reject) => { 407 | if (this.jPushPlugin) { 408 | this.jPushPlugin.reSetBadge(); 409 | resolve('ok') 410 | } else { 411 | console.warn(this.warnText); 412 | reject('没有找到 jPushPlugin'); 413 | } 414 | }) 415 | } 416 | 417 | clearAllLocalNotifications() { 418 | this.initJPushPlugin(); 419 | 420 | return new Promise((resolve, reject) => { 421 | if (this.jPushPlugin) { 422 | this.jPushPlugin.clearAllLocalNotifications(); 423 | resolve('ok') 424 | } else { 425 | console.warn(this.warnText); 426 | reject('没有找到 jPushPlugin'); 427 | } 428 | }) 429 | } 430 | 431 | /** 432 | * 433 | * @param value 434 | * @returns {Promise} 435 | */ 436 | setApplicationIconBadgeNumber(value: number) { 437 | this.initJPushPlugin(); 438 | return new Promise((resolve, reject) => { 439 | if (this.jPushPlugin) { 440 | this.jPushPlugin.setApplicationIconBadgeNumber(value); 441 | resolve('ok') 442 | 443 | } else { 444 | console.warn(this.warnText); 445 | reject('没有找到 jPushPlugin'); 446 | } 447 | }) 448 | } 449 | 450 | getApplicationIconBadgeNumber() { 451 | this.initJPushPlugin(); 452 | 453 | return new Promise((resolve, reject) => { 454 | 455 | if (this.jPushPlugin) { 456 | this.jPushPlugin.getApplicationIconBadgeNumber((num: any) => { 457 | resolve(num) 458 | }) 459 | } else { 460 | console.warn(this.warnText); 461 | reject('没有找到 jPushPlugin'); 462 | } 463 | 464 | 465 | }) 466 | } 467 | 468 | setPushTime(days: number | null[], startHour: number, endHour: number) { 469 | this.initJPushPlugin(); 470 | return new Promise((resolve, reject) => { 471 | if (this.jPushPlugin) { 472 | this.jPushPlugin.setPushTime(days, startHour, endHour); 473 | resolve('ok') 474 | } else { 475 | console.warn(this.warnText); 476 | reject('没有找到 jPushPlugin'); 477 | } 478 | }) 479 | } 480 | 481 | setSilenceTime(startHour: number, startMinute: number, endHour: number, endMinute: number) { 482 | this.initJPushPlugin(); 483 | return new Promise((resolve, reject) => { 484 | if (this.jPushPlugin) { 485 | this.jPushPlugin.setSilenceTime(startHour, startMinute, endHour, endMinute); 486 | resolve('ok') 487 | } else { 488 | console.warn(this.warnText); 489 | reject('没有找到 jPushPlugin'); 490 | } 491 | }) 492 | } 493 | 494 | /** 495 | * 496 | * @param id 497 | * @returns {Promise} 498 | */ 499 | clearNotificationById(id: number) { 500 | this.initJPushPlugin(); 501 | return new Promise((resolve, reject) => { 502 | if (this.jPushPlugin) { 503 | this.jPushPlugin.clearNotificationById(id); 504 | resolve('ok') 505 | } else { 506 | console.warn(this.warnText); 507 | reject('没有找到 jPushPlugin'); 508 | } 509 | }) 510 | 511 | } 512 | 513 | clearAllNotification() { 514 | this.initJPushPlugin(); 515 | 516 | return new Promise((resolve, reject) => { 517 | if (this.jPushPlugin) { 518 | this.jPushPlugin.clearAllNotification(); 519 | resolve('ok') 520 | } else { 521 | console.warn(this.warnText); 522 | reject('没有找到 jPushPlugin'); 523 | } 524 | }) 525 | 526 | } 527 | 528 | /** 529 | * 530 | * @returns {Observable} 531 | */ 532 | openNotification() { 533 | return this.wrapEventObservable('jpush.openNotification'); 534 | } 535 | 536 | /** 537 | * 538 | * @returns {Observable} 539 | */ 540 | receiveNotification() { 541 | return this.wrapEventObservable('jpush.receiveNotification'); 542 | } 543 | 544 | /** 545 | * 546 | * @returns {Observable} 547 | */ 548 | receiveMessage() { 549 | return this.wrapEventObservable('jpush.receiveMessage'); 550 | } 551 | 552 | backgroundNotification() { 553 | return this.wrapEventObservable('jpush.backgroundNotification'); 554 | } 555 | 556 | receiveRegistrationId() { 557 | return this.wrapEventObservable('jpush.receiveRegistrationId'); 558 | } 559 | } 560 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "es2015", 4 | "target": "es5", 5 | "moduleResolution": "node", 6 | "sourceMap": true, 7 | "declaration": true, 8 | "noImplicitAny": true, 9 | "experimentalDecorators": true, 10 | "lib": ["dom", "es2015"], 11 | "outDir": "./dist" 12 | }, 13 | "exclude": [ 14 | "node_modules", 15 | "dist", 16 | "aot", 17 | "jpush-demo" 18 | ], 19 | "angularCompilerOptions": { 20 | "genDir": "aot" 21 | } 22 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "tslint-ionic-rules" 3 | } 4 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@angular/common@4.4.3": 6 | version "4.4.3" 7 | resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.4.3.tgz#f92ac68b02bec5f0e6d3603a843294dc96c96074" 8 | dependencies: 9 | tslib "^1.7.1" 10 | 11 | "@angular/compiler-cli@4.4.3": 12 | version "4.4.3" 13 | resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.4.3.tgz#183af81f141186b8d660b06429592d40b7540a4a" 14 | dependencies: 15 | "@angular/tsc-wrapped" "4.4.3" 16 | minimist "^1.2.0" 17 | reflect-metadata "^0.1.2" 18 | 19 | "@angular/compiler@4.4.3": 20 | version "4.4.3" 21 | resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.4.3.tgz#8f01163dad7db3408497d99d387554b6b185ad66" 22 | dependencies: 23 | tslib "^1.7.1" 24 | 25 | "@angular/core@4.4.3": 26 | version "4.4.3" 27 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.4.3.tgz#e71d2b07beaacbab48ab7f51d4e2286ea5d70e15" 28 | dependencies: 29 | tslib "^1.7.1" 30 | 31 | "@angular/forms@4.4.3": 32 | version "4.4.3" 33 | resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.4.3.tgz#25b41bbab58bf1da872411c8517c10d7c5373d8e" 34 | dependencies: 35 | tslib "^1.7.1" 36 | 37 | "@angular/http@4.4.3": 38 | version "4.4.3" 39 | resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.4.3.tgz#b557ed24144aacc44b136cd477e84d2f57808903" 40 | dependencies: 41 | tslib "^1.7.1" 42 | 43 | "@angular/platform-browser-dynamic@4.4.3": 44 | version "4.4.3" 45 | resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.3.tgz#e41ddd8252432775310eab5940cdd8df0618f084" 46 | dependencies: 47 | tslib "^1.7.1" 48 | 49 | "@angular/platform-browser@4.4.3": 50 | version "4.4.3" 51 | resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.4.3.tgz#23f9a45bd3dc7f44d97877fbf8e6032decfc9dcb" 52 | dependencies: 53 | tslib "^1.7.1" 54 | 55 | "@angular/tsc-wrapped@4.4.3": 56 | version "4.4.3" 57 | resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.4.3.tgz#2d3f38210a1d4db03fc86dcf1e095812b85cd119" 58 | dependencies: 59 | tsickle "^0.21.0" 60 | 61 | "@ionic-native/core@4.3.0": 62 | version "4.3.0" 63 | resolved "https://registry.yarnpkg.com/@ionic-native/core/-/core-4.3.0.tgz#0d613bb6c8779146949514299ca1c02611e308a9" 64 | 65 | "@ionic-native/splash-screen@4.3.0": 66 | version "4.3.0" 67 | resolved "https://registry.yarnpkg.com/@ionic-native/splash-screen/-/splash-screen-4.3.0.tgz#9deb07afcf1059807233aa7d90d6e441f6ecb372" 68 | 69 | "@ionic-native/status-bar@4.3.0": 70 | version "4.3.0" 71 | resolved "https://registry.yarnpkg.com/@ionic-native/status-bar/-/status-bar-4.3.0.tgz#ddb16861a22c7235c0737ba4e0e5127c9aee4ace" 72 | 73 | "@ionic/storage@2.0.1": 74 | version "2.0.1" 75 | resolved "https://registry.yarnpkg.com/@ionic/storage/-/storage-2.0.1.tgz#bb1a8c276007d008d7acdda426b56065b0fd3c0b" 76 | dependencies: 77 | "@types/localforage" "0.0.30" 78 | localforage "~1.4.2" 79 | localforage-cordovasqlitedriver "~1.5.0" 80 | 81 | "@types/localforage@0.0.30": 82 | version "0.0.30" 83 | resolved "https://registry.yarnpkg.com/@types/localforage/-/localforage-0.0.30.tgz#3d60a6bf6dda38e3f8a469611598379f1f649509" 84 | 85 | acorn@^1.0.3: 86 | version "1.2.2" 87 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" 88 | 89 | amdefine@>=0.0.4: 90 | version "1.0.1" 91 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 92 | 93 | ansi-regex@^2.0.0: 94 | version "2.1.1" 95 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 96 | 97 | ansi-styles@^2.2.1: 98 | version "2.2.1" 99 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 100 | 101 | ansi-styles@^3.1.0: 102 | version "3.2.0" 103 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" 104 | dependencies: 105 | color-convert "^1.9.0" 106 | 107 | ast-types@0.8.15: 108 | version "0.8.15" 109 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" 110 | 111 | babel-code-frame@^6.22.0: 112 | version "6.26.0" 113 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 114 | dependencies: 115 | chalk "^1.1.3" 116 | esutils "^2.0.2" 117 | js-tokens "^3.0.2" 118 | 119 | balanced-match@^1.0.0: 120 | version "1.0.0" 121 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 122 | 123 | base62@0.1.1: 124 | version "0.1.1" 125 | resolved "https://registry.yarnpkg.com/base62/-/base62-0.1.1.tgz#7b4174c2f94449753b11c2651c083da841a7b084" 126 | 127 | brace-expansion@^1.1.7: 128 | version "1.1.8" 129 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 130 | dependencies: 131 | balanced-match "^1.0.0" 132 | concat-map "0.0.1" 133 | 134 | builtin-modules@^1.1.1: 135 | version "1.1.1" 136 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 137 | 138 | chalk@^1.1.3: 139 | version "1.1.3" 140 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 141 | dependencies: 142 | ansi-styles "^2.2.1" 143 | escape-string-regexp "^1.0.2" 144 | has-ansi "^2.0.0" 145 | strip-ansi "^3.0.0" 146 | supports-color "^2.0.0" 147 | 148 | chalk@^2.1.0: 149 | version "2.3.0" 150 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" 151 | dependencies: 152 | ansi-styles "^3.1.0" 153 | escape-string-regexp "^1.0.5" 154 | supports-color "^4.0.0" 155 | 156 | color-convert@^1.9.0: 157 | version "1.9.1" 158 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 159 | dependencies: 160 | color-name "^1.1.1" 161 | 162 | color-name@^1.1.1: 163 | version "1.1.3" 164 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 165 | 166 | commander@^2.9.0: 167 | version "2.11.0" 168 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 169 | 170 | concat-map@0.0.1: 171 | version "0.0.1" 172 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 173 | 174 | core-util-is@~1.0.0: 175 | version "1.0.2" 176 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 177 | 178 | diff@^3.2.0: 179 | version "3.4.0" 180 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" 181 | 182 | doctrine@^0.7.2: 183 | version "0.7.2" 184 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" 185 | dependencies: 186 | esutils "^1.1.6" 187 | isarray "0.0.1" 188 | 189 | es3ify@^0.1.3: 190 | version "0.1.4" 191 | resolved "https://registry.yarnpkg.com/es3ify/-/es3ify-0.1.4.tgz#ad9fa5df1ae34f3f31e1211b5818b2d51078dfd1" 192 | dependencies: 193 | esprima-fb "~3001.0001.0000-dev-harmony-fb" 194 | jstransform "~3.0.0" 195 | through "~2.3.4" 196 | 197 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 198 | version "1.0.5" 199 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 200 | 201 | esmangle-evaluator@^1.0.0: 202 | version "1.0.1" 203 | resolved "https://registry.yarnpkg.com/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz#620d866ef4861b3311f75766d52a8572bb3c6336" 204 | 205 | esprima-fb@~15001.1001.0-dev-harmony-fb: 206 | version "15001.1001.0-dev-harmony-fb" 207 | resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" 208 | 209 | esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb: 210 | version "3001.1.0-dev-harmony-fb" 211 | resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" 212 | 213 | esutils@^1.1.6: 214 | version "1.1.6" 215 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" 216 | 217 | esutils@^2.0.2: 218 | version "2.0.2" 219 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 220 | 221 | falafel@^1.0.1: 222 | version "1.2.0" 223 | resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" 224 | dependencies: 225 | acorn "^1.0.3" 226 | foreach "^2.0.5" 227 | isarray "0.0.1" 228 | object-keys "^1.0.6" 229 | 230 | foreach@^2.0.5: 231 | version "2.0.5" 232 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 233 | 234 | fs.realpath@^1.0.0: 235 | version "1.0.0" 236 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 237 | 238 | glob@^7.1.1: 239 | version "7.1.2" 240 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 241 | dependencies: 242 | fs.realpath "^1.0.0" 243 | inflight "^1.0.4" 244 | inherits "2" 245 | minimatch "^3.0.4" 246 | once "^1.3.0" 247 | path-is-absolute "^1.0.0" 248 | 249 | has-ansi@^2.0.0: 250 | version "2.0.0" 251 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 252 | dependencies: 253 | ansi-regex "^2.0.0" 254 | 255 | has-flag@^2.0.0: 256 | version "2.0.0" 257 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 258 | 259 | immediate@~3.0.5: 260 | version "3.0.6" 261 | resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 262 | 263 | inflight@^1.0.4: 264 | version "1.0.6" 265 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 266 | dependencies: 267 | once "^1.3.0" 268 | wrappy "1" 269 | 270 | inherits@2, inherits@~2.0.1: 271 | version "2.0.3" 272 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 273 | 274 | inline-process-browser@^1.0.0: 275 | version "1.0.0" 276 | resolved "https://registry.yarnpkg.com/inline-process-browser/-/inline-process-browser-1.0.0.tgz#46a61b153dd3c9b1624b1a00626edb4f7f414f22" 277 | dependencies: 278 | falafel "^1.0.1" 279 | through2 "^0.6.5" 280 | 281 | ionic-angular@3.7.1: 282 | version "3.7.1" 283 | resolved "https://registry.yarnpkg.com/ionic-angular/-/ionic-angular-3.7.1.tgz#63571213b3194ef41d42d4e43c7a7721d085a262" 284 | 285 | ionicons@3.0.0: 286 | version "3.0.0" 287 | resolved "https://registry.yarnpkg.com/ionicons/-/ionicons-3.0.0.tgz#40b8daf4fd7a31150bd002160f66496e22a98c3c" 288 | 289 | isarray@0.0.1: 290 | version "0.0.1" 291 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 292 | 293 | js-tokens@^3.0.2: 294 | version "3.0.2" 295 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 296 | 297 | jstransform@~3.0.0: 298 | version "3.0.0" 299 | resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-3.0.0.tgz#a2591ab6cee8d97bf3be830dbfa2313b87cd640b" 300 | dependencies: 301 | base62 "0.1.1" 302 | esprima-fb "~3001.1.0-dev-harmony-fb" 303 | source-map "0.1.31" 304 | 305 | lie@3.0.2: 306 | version "3.0.2" 307 | resolved "https://registry.yarnpkg.com/lie/-/lie-3.0.2.tgz#ffda21d7bba26f377cad865d3649b2fc8ce39fea" 308 | dependencies: 309 | es3ify "^0.1.3" 310 | immediate "~3.0.5" 311 | inline-process-browser "^1.0.0" 312 | unreachable-branch-transform "^0.3.0" 313 | 314 | localforage-cordovasqlitedriver@~1.5.0: 315 | version "1.5.0" 316 | resolved "https://registry.yarnpkg.com/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.5.0.tgz#f934789e6ad9a39bac05fdd1168812f438535762" 317 | dependencies: 318 | "@types/localforage" "0.0.30" 319 | localforage ">=1.4.0" 320 | 321 | localforage@>=1.4.0: 322 | version "1.5.3" 323 | resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.5.3.tgz#698aa16af1022340b240be9d93192e8af022ff16" 324 | dependencies: 325 | lie "3.0.2" 326 | 327 | localforage@~1.4.2: 328 | version "1.4.3" 329 | resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.4.3.tgz#a212543c39c7c76424edd12bf474c489aaca494c" 330 | dependencies: 331 | lie "3.0.2" 332 | 333 | minimatch@^3.0.4: 334 | version "3.0.4" 335 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 336 | dependencies: 337 | brace-expansion "^1.1.7" 338 | 339 | minimist@0.0.8: 340 | version "0.0.8" 341 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 342 | 343 | minimist@^1.2.0: 344 | version "1.2.0" 345 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 346 | 347 | mkdirp@^0.5.1: 348 | version "0.5.1" 349 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 350 | dependencies: 351 | minimist "0.0.8" 352 | 353 | moment@^2.19.1: 354 | version "2.19.2" 355 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe" 356 | 357 | object-keys@^1.0.6: 358 | version "1.0.11" 359 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 360 | 361 | once@^1.3.0: 362 | version "1.4.0" 363 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 364 | dependencies: 365 | wrappy "1" 366 | 367 | path-is-absolute@^1.0.0: 368 | version "1.0.1" 369 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 370 | 371 | path-parse@^1.0.5: 372 | version "1.0.5" 373 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 374 | 375 | path-to-regexp@^1.0.1: 376 | version "1.7.0" 377 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 378 | dependencies: 379 | isarray "0.0.1" 380 | 381 | private@~0.1.5: 382 | version "0.1.8" 383 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 384 | 385 | "readable-stream@>=1.0.33-1 <1.1.0-0": 386 | version "1.0.34" 387 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 388 | dependencies: 389 | core-util-is "~1.0.0" 390 | inherits "~2.0.1" 391 | isarray "0.0.1" 392 | string_decoder "~0.10.x" 393 | 394 | recast@^0.10.1: 395 | version "0.10.43" 396 | resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" 397 | dependencies: 398 | ast-types "0.8.15" 399 | esprima-fb "~15001.1001.0-dev-harmony-fb" 400 | private "~0.1.5" 401 | source-map "~0.5.0" 402 | 403 | reflect-metadata@^0.1.2: 404 | version "0.1.10" 405 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" 406 | 407 | resolve@^1.3.2: 408 | version "1.5.0" 409 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" 410 | dependencies: 411 | path-parse "^1.0.5" 412 | 413 | rxjs@5.4.3: 414 | version "5.4.3" 415 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f" 416 | dependencies: 417 | symbol-observable "^1.0.1" 418 | 419 | semver@^5.3.0: 420 | version "5.4.1" 421 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 422 | 423 | serviceworker-cache-polyfill@^4.0.0: 424 | version "4.0.0" 425 | resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" 426 | 427 | source-map-support@^0.4.2: 428 | version "0.4.18" 429 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 430 | dependencies: 431 | source-map "^0.5.6" 432 | 433 | source-map@0.1.31: 434 | version "0.1.31" 435 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.31.tgz#9f704d0d69d9e138a81badf6ebb4fde33d151c61" 436 | dependencies: 437 | amdefine ">=0.0.4" 438 | 439 | source-map@^0.5.6, source-map@~0.5.0: 440 | version "0.5.7" 441 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 442 | 443 | string_decoder@~0.10.x: 444 | version "0.10.31" 445 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 446 | 447 | strip-ansi@^3.0.0: 448 | version "3.0.1" 449 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 450 | dependencies: 451 | ansi-regex "^2.0.0" 452 | 453 | supports-color@^2.0.0: 454 | version "2.0.0" 455 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 456 | 457 | supports-color@^4.0.0: 458 | version "4.5.0" 459 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 460 | dependencies: 461 | has-flag "^2.0.0" 462 | 463 | sw-toolbox@3.6.0: 464 | version "3.6.0" 465 | resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" 466 | dependencies: 467 | path-to-regexp "^1.0.1" 468 | serviceworker-cache-polyfill "^4.0.0" 469 | 470 | symbol-observable@^1.0.1: 471 | version "1.0.4" 472 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" 473 | 474 | through2@^0.6.2, through2@^0.6.5: 475 | version "0.6.5" 476 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" 477 | dependencies: 478 | readable-stream ">=1.0.33-1 <1.1.0-0" 479 | xtend ">=4.0.0 <4.1.0-0" 480 | 481 | through@~2.3.4: 482 | version "2.3.8" 483 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 484 | 485 | tsickle@^0.21.0: 486 | version "0.21.6" 487 | resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.21.6.tgz#53b01b979c5c13fdb13afb3fb958177e5991588d" 488 | dependencies: 489 | minimist "^1.2.0" 490 | mkdirp "^0.5.1" 491 | source-map "^0.5.6" 492 | source-map-support "^0.4.2" 493 | 494 | tslib@^1.0.0, tslib@^1.7.1: 495 | version "1.8.0" 496 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.0.tgz#dc604ebad64bcbf696d613da6c954aa0e7ea1eb6" 497 | 498 | tslint-eslint-rules@^4.1.1: 499 | version "4.1.1" 500 | resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba" 501 | dependencies: 502 | doctrine "^0.7.2" 503 | tslib "^1.0.0" 504 | tsutils "^1.4.0" 505 | 506 | tslint@^5.3.2: 507 | version "5.8.0" 508 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.8.0.tgz#1f49ad5b2e77c76c3af4ddcae552ae4e3612eb13" 509 | dependencies: 510 | babel-code-frame "^6.22.0" 511 | builtin-modules "^1.1.1" 512 | chalk "^2.1.0" 513 | commander "^2.9.0" 514 | diff "^3.2.0" 515 | glob "^7.1.1" 516 | minimatch "^3.0.4" 517 | resolve "^1.3.2" 518 | semver "^5.3.0" 519 | tslib "^1.7.1" 520 | tsutils "^2.12.1" 521 | 522 | tsutils@^1.4.0: 523 | version "1.9.1" 524 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" 525 | 526 | tsutils@^2.12.1: 527 | version "2.12.2" 528 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.12.2.tgz#ad58a4865d17ec3ddb6631b6ca53be14a5656ff3" 529 | dependencies: 530 | tslib "^1.7.1" 531 | 532 | typescript@^2.5.3: 533 | version "2.6.1" 534 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631" 535 | 536 | unreachable-branch-transform@^0.3.0: 537 | version "0.3.0" 538 | resolved "https://registry.yarnpkg.com/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz#d99cc4c6e746d264928845b611db54b0f3474caa" 539 | dependencies: 540 | esmangle-evaluator "^1.0.0" 541 | recast "^0.10.1" 542 | through2 "^0.6.2" 543 | 544 | wrappy@1: 545 | version "1.0.2" 546 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 547 | 548 | "xtend@>=4.0.0 <4.1.0-0": 549 | version "4.0.1" 550 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 551 | 552 | zone.js@0.8.10: 553 | version "0.8.10" 554 | resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.10.tgz#6d1b696492c029cdbe808e59e87bbd9491b98aa8" 555 | --------------------------------------------------------------------------------