## ionic极光推送-android
想要完成推送功能,首先需要在极光官网完成注册登录功能,并在极光开发者服务中创建应用,[极光开发者服务网址](https://www.jiguang.cn/dev/#/app/list#dev)
需要注意的是,应用包名,appId需要写入程序中,其中应用包名应慎重取名字,appID由系统自动生成。
ionic项目创建后,将项目名文件夹下config.xml文件中id取值为应用包名例:<widget id="com.ionic.myapp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
下载jpush-phonegap-plugin插件,(注:插件从 v3.4.0 开始支持 cordova-android 7.0.0,因 cordova-android 7.0.0 修改了 Android 项目结构,因此不兼容之前的版本 ).
命令:cordova plugin add jpush-phonegap-plugin@3.3.2 --variable APP_KEY=your_jpush_appkey
添加插件并添加应用appId.带插件版本安装,可以从插件文件夹下的plugin.xml查看插件版本。
添加安卓平台,ionic platform add android(顺序不可逆)。加android平台时,将会配置很多变量,包括(APP_KEY,应用包名)
可以换极光应用,直接将项目名文件夹下config.xml中id和jpush-phonegap-plugin插件下的plugin.xml中的appkey换成新极光应用的应用包名和appkey就可以了。
再移除安卓平台cordova platform remove android,重新加入即可。
只适合在真机上运行,在浏览器上会报错。
再就是极光官方的一些常用的API。可在插件下的doc文件夹下找到。example文件夹下有一个现成的demo
```
window.JPush.init() //初始化,开启服务
window.JPush.stopPush()//停止服务,本功能是一个完全本地的状态操作,也就是说:停止推送服务的状//态不会保存到服务器上,不能通过 `init` 方法恢复,而需要调用 `resumePush` 恢复。
window.JPush.resumePush()//恢复推送服务
window.JPush.isPushStopped(callback)//用来检查 Push Service 是否已经被停止。
window.JPush.setDebugMode(true)//用于开启 Debug 模式,显示更多的日志信息。
```
## 设置别名
window.JPush.setAlias({ sequence: 1, alias: 'your_alias' },
(result) => {
var sequence = result.sequence
var alias = result.alias
}, (error) => {
var sequence = error.sequence
var errorCode = error.code
})
## 标签
window.JPush.addTags({ sequence: 1, tags: ['tag1', 'tag2'] },
(result) => {
var sequence = result.sequence
var tags = result.tags // 数组类型
}, (error) => {
var sequence = error.sequence
var errorCode = error.code
})
## 点击通知进入应用程序时触发
```
document.addEventListener("jpush.openNotification", function (event) {
var alertContent
if(device.platform == "Android") {
alertContent = event.alert
} else {
alertContent = event.aps.alert
}
}, false)
```
## 收到通知时触发。
```
document.addEventListener("jpush.receiveNotification", function (event) {
var alertContent
if(device.platform == "Android") {
alertContent = event.alert
} else {
alertContent = event.aps.alert
}
alert("open Notification:" + alertContent)
}, false)
```
## 获取自定义消息推送内容
```
document.addEventListener("jpush.receiveMessage", function (event) {
var message
if(device.platform == "Android") {
message = event.message;
} else {
message = event.content;
}
}, false)
```