本人小白 由于公司项目 需要到推送通知 于是决定选择极光推送 以下是 有的代码是截取的别人的 记录如下 :
首先去https://www.jiguang.cn/注册一个账号
申请应用 填写你项目应用的包名 在你项目的config.xml里获取到APPKey 记住!
然后安装官方的cordova插件
cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey
再安装本库
cnpm install ionic2-jpush --save
再home.ts里引入
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Platform } from 'ionic-angular';
import { JPushService } from 'ionic2-jpush/dist'
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers : [JPushService]
})
export class HomePage {
constructor(public navCtrl: NavController, private platform: Platform,private jPushPlugin: JPushService) {
let openNotification = this.jPushPlugin.openNotification()
.subscribe( res => {
console.log(res);
console.log('收到点击通知事件')
})
let receiveNotification = this.jPushPlugin.receiveNotification()
.subscribe( res => {
console.log(res)
console.log('收到通知')
})
let receiveMessage = this.jPushPlugin.receiveMessage()
.subscribe( res => {
console.log(res)
console.log('收到自定义消息')
})
let backgroundNotification = this.jPushPlugin.backgroundNotification()
.subscribe( res => {
console.log(res)
console.log('收到后台通知')
})
}
/**
* 注册极光
*/
init() {
this.jPushPlugin.init()
.then(res => alert(res))
.catch(err => alert(err))
}
/**
* 获取ID
*/
getRegistrationID() {
this.jPushPlugin.getRegistrationID()
.then(res => alert(res))
.catch(err => alert(err))
}
}
<ion-header>
<ion-navbar>
<ion-title>Home</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<h2>ionic2-jpush-demo</h2>
<p>
ionic2-jpush-demo
</p>
<button (click)="init()" ion-button block>Init</button>
<button (click)="getRegistrationID()" ion-button block>Get RegistrationID</button>
</ion-content>
如果获取ID失败 或 不匹配 解决如下:
1.首先查看应用包 是否和 极光官网填写一致
2.检查本地项目下的
platforms/android/AndroidManifest.xml 和 android.json
plugins/android.js 和 fetch.json