import { Component } from "@angular/core"; import { NavController } from "ionic-angular"; import { JPush } from "@jiguang-ionic/jpush"; import { Device } from "@ionic-native/device"; @Component({ selector: "page-home", templateUrl: "home.html" }) export class HomePage { public registrationId: string; devicePlatform: string; sequence: number = 0; tagResultHandler = function(result) { var sequence: number = result.sequence; var tags: Array = result.tags == null ? [] : result.tags; alert( "Success!" + "\nSequence: " + sequence + "\nTags: " + tags.toString() ); }; aliasResultHandler = function(result) { var sequence: number = result.sequence; var alias: string = result.alias; alert("Success!" + "\nSequence: " + sequence + "\nAlias: " + alias); }; errorHandler = function(err) { var sequence: number = err.sequence; var code = err.code; alert("Error!" + "\nSequence: " + sequence + "\nCode: " + code); }; constructor( public navCtrl: NavController, public jpush: JPush, device: Device ) { this.devicePlatform = device.platform; document.addEventListener( "jpush.receiveNotification", (event: any) => { var content; if (this.devicePlatform == "Android") { content = event.alert; } else { content = event.aps.alert; } alert("Receive notification: " + JSON.stringify(event)); }, false ); document.addEventListener( "jpush.openNotification", (event: any) => { var content; if (this.devicePlatform == "Android") { content = event.alert; } else { // iOS if (event.aps == undefined) { // 本地通知 content = event.content; } else { // APNS content = event.aps.alert; } } alert("open notification: " + JSON.stringify(event)); }, false ); document.addEventListener( "jpush.receiveLocalNotification", (event: any) => { // iOS(*,9) Only , iOS(10,*) 将在 jpush.openNotification 和 jpush.receiveNotification 中触发。 var content; if (this.devicePlatform == "Android") { } else { content = event.content; } alert("receive local notification: " + JSON.stringify(event)); }, false ); } getRegistrationID() { this.jpush.getRegistrationID().then(rId => { this.registrationId = rId; }); } setTags() { this.jpush .setTags({ sequence: this.sequence++, tags: ["Tag1", "Tag2"] }) .then(this.tagResultHandler) .catch(this.errorHandler); } addTags() { this.jpush .addTags({ sequence: this.sequence++, tags: ["Tag3", "Tag4"] }) .then(this.tagResultHandler) .catch(this.errorHandler); } checkTagBindState() { this.jpush .checkTagBindState({ sequence: this.sequence++, tag: "Tag1" }) .then(result => { var sequence = result.sequence; var tag = result.tag; var isBind = result.isBind; alert( "Sequence: " + sequence + "\nTag: " + tag + "\nIsBind: " + isBind ); }) .catch(this.errorHandler); } deleteTags() { this.jpush .deleteTags({ sequence: this.sequence++, tags: ["Tag4"] }) .then(this.tagResultHandler) .catch(this.errorHandler); } getAllTags() { this.jpush .getAllTags({ sequence: this.sequence++ }) .then(this.tagResultHandler) .catch(this.errorHandler); } cleanTags() { this.jpush .cleanTags({ sequence: this.sequence++ }) .then(this.tagResultHandler) .catch(this.errorHandler); } setAlias() { this.jpush .setAlias({ sequence: this.sequence++, alias: "TestAlias" }) .then(this.aliasResultHandler) .catch(this.errorHandler); } getAlias() { this.jpush .getAlias({ sequence: this.sequence++ }) .then(this.aliasResultHandler) .catch(this.errorHandler); } deleteAlias() { this.jpush .deleteAlias({ sequence: this.sequence++ }) .then(this.aliasResultHandler) .catch(this.errorHandler); } addLocalNotification() { if (this.devicePlatform == "Android") { this.jpush.addLocalNotification(0, "Hello JPush", "JPush", 1, 5000); } else { this.jpush.addLocalNotificationForIOS(5, "Hello JPush", 1, "localNoti1"); } } }