【发布时间】:2017-04-19 11:48:48
【问题描述】:
我想在 ionic 2 中实现 pushwoosh,我正在使用 this cordova 插件。我是 ionic 2 的新手,想知道如何使用这个插件中的方法。
【问题讨论】:
标签: push-notification ionic2 cordova-plugins pushwoosh
我想在 ionic 2 中实现 pushwoosh,我正在使用 this cordova 插件。我是 ionic 2 的新手,想知道如何使用这个插件中的方法。
【问题讨论】:
标签: push-notification ionic2 cordova-plugins pushwoosh
首先阅读有关使用cordova插件的pushwoosh手册:http://docs.pushwoosh.com/docs/cordova-phonegap
之后我得到了这段代码在 ios 和 android 上工作。
在第 3 步中,您可以使用以下代码作为服务提供者: 在我的项目文件夹中,我创建了这个文件:/src/app/providers/push-service.ts
import { Injectable } from "@angular/core";
import { Platform } from 'ionic-angular';
declare var cordova : any;
@Injectable()
export class PushService {
PUSHWOOSH_APP_ID : string = 'XXXXX-XXXXX'; // your pushwoosh app id
GOOGLE_PROJECT_NUMBER: string = 'XXXXXXXXXXXX'; // project number from firebase
constructor(public platform : Platform){
this.platform.ready().then(() => {
if(this.platform.is('ios') || this.platform.is('android')){
console.log("PushwooshService init: Running on push compatible platform "+ this.platform.userAgent() +')');
this.initPushwoosh();
} else{
console.log("PushwooshService init: No compatible platform available. Skipping init.)");
return;
}
});
}
initPushwoosh(){
let pushNotification = cordova.require("pushwoosh-cordova-plugin.PushNotification");
//set push notifications handler
document.addEventListener('push-notification', function (event) {
let message = (event as any).notification.message; // Push message
let userData = (event as any).notification.userdata; // Custom push data
if (userData) {
// handle custom push data here
console.log('user data: ' + JSON.stringify(userData));
}
});
//initialize Pushwoosh with projectid: "GOOGLE_PROJECT_NUMBER", pw_appid : "PUSHWOOSH_APP_ID". This will trigger all pending push notifications on start.
pushNotification.onDeviceReady({
appid: this.PUSHWOOSH_APP_ID,
projectid: this.GOOGLE_PROJECT_NUMBER
// serviceName: "MPNS_SERVICE_NAME"
});
//register for pushes
pushNotification.registerDevice(
function (status) {
var pushToken = status;
console.log(pushToken);
alert('push token: ' + JSON.stringify(pushToken));
},
function (status) {
alert(JSON.stringify(['failed to register ', status]));
}
);
}
}
现在您可以在 /src/app/app.component.ts 中导入此提供程序。
import { PushService } from '../providers/push-service';
@Component({
templateUrl: 'app.html',
providers: [PushService]
})
每当您的应用启动时,它都会初始化 pushwoosh。
祝你好运;)
【讨论】:
你需要使用
var message = (event as any).notification.message;
代替
var message = event.notification.message;
【讨论】: