ionic4 集成极光推送jpush

1. 在极光官网注册、登录、创建应用

极光推送官网

应用包名要与config.xml一致

2.安装插件

ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey
//your_jpush_appkey是应用信息的AppKey
npm install --save @jiguang-ionic/jpush

插件地址

3.引入app

在app.module.ts文件中引入:
import { JPush } from '@jiguang-ionic/jpush/ngx';providers: [...JPush,...]
在app.component.ts文件中引入
import { JPush } from '@jiguang-ionic/jpush/ngx';
export class AppComponent {constructor(private platform: Platform,private splashScreen: SplashScreen,private statusBar: StatusBar,private jpush:JPush) {this.initializeApp();}initializeApp() {this.platform.ready().then(() => {this.statusBar.styleDefault();this.splashScreen.hide();this.jpush.setDebugMode(true);this.jpush.init();});}
}
在首页ts里加入
// 点击极光推送var that = this;document.addEventListener("jpush.openNotification", function (event) {var alertContent = event['extras'];alert(alertContent)}, false)// 获取极光推送document.addEventListener("jpush.receiveNotification", function (event) {}, false)
this.getRegistrationID();
this.setAlias(this.userInfo.phone);getRegistrationID() {this.jPushPlugin.getRegistrationID().then(res => {}).catch()}setAlias(alias: string) {this.jPushPlugin.setAlias({ sequence: 1, alias: alias }).then(res => {}).catch(err => {});}

用户第一次在手机上打开APP的时候,会初始化极光插件,然后极光插件会为手机设备设置一个Registration ID。必须获取到Registration ID,才能为用户打标签和别名。一般都是能够成功获取到Registration ID的。

用户登录成功后,我们要为用户打上对应tag,这样用户才能接收到推送。

4.打包apk,安装到手机测试

踩坑(一)

报错 Failed to post notification on channel "JPush_Notification"

在JPushPlugin.java文件中引入包名

踩坑(二)

APP_KEY不是合法的值

解决办法:

修改Resources/PushConfig.plist 修改对应的APP_KEY和CHANNEL(渠道)

踩坑(三)

Not get deviceToken yet. After successful login, a custom message can be sent, but the APNs notification cannot. Until the deviceToken is obtained and reported successfully, the APNs notification can be used normally.

解决办法:

把手机网络关掉重新联网就好了。

网上很多遇到这个问题的小伙伴是因为didRegisterForRemoteNotificationsWithDeviceToken这个方法被覆盖了,极光的registerDeviceToken方法没被调用,没把设备Token传过去。但有的设备不行,有的设备正常,就检查一下设备的网络吧,百分百是网络设置出问题了。

关闭推送

当用户退出当前账号、token失效或发生了互踢,则需要关闭jpush,这样用户的手机上才不会继续收到推送。

注意:推送只会推送给一台设备。在没有开启互踢的情况下,多台手机登录同一个账号,这时候是无法确定推送会发送给哪台手机的。

注意:IOS的通知只有在应用处于后台或没开启的时候才会在通知栏显示。

标签设置错误码定义

|Code|描述|详细解释| |:---:|:---:|:---:| |6001|无效的设置,tag/alias 不应参数都为|null| |6002|设置超时|建议重试 |6003|alias 字符串不合法|有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符(v2.1.6支持)@!#$&+=.¥ |6004|alias超长。最多 40个字节|中文 UTF-8 是 3 个字节 |6005|某一个 tag 字符串不合法|有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符(v2.1.6支持)@!#$&+=.¥ |6006|某一个 tag 超长。一个 tag 最多 40个字节|中文 UTF-8 是 3 个字节 |6007|tags 数量超出限制。最多 1000个|这是一台设备的限制。一个应用全局的标签数量无限制。 |6008|tag 超出总长度限制|总长度最多 7K 字节 |6009|未知错误|由于权限问题,导致的PushService启动异常。 |6011|10s内设置tag或alias大于10次|短时间内操作过于频繁 |6012|在JPush服务stop状态下设置了tag或alias|3.0.0版本新增的错误码。

ionic4 集成极光推送jpush相关推荐

  1. Java中集成极光推送实现给Android提送消息通知(附代码下载)

    场景 Android中集成极光推送实现推送消息通知与根据别名指定推送附示例代码下载: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details ...

  2. 极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区

    集成极光推送 1,首先肯定是注册,添加应用 2,开始自动集成比手动集成简单第一步 在 build.gradle defaultConfig { multiDexEnabledtrue applicat ...

  3. 李洪强iOS之集成极光推送二iOS 证书 设置指南

    李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...

  4. Android第三方SDK集成 —— 极光推送

    前言: 本文前篇,可以帮助朋友们快速集成极光推送.本文后篇,是我自己项目实践的一些总结和心得,应该对读者们还是很有参考价值的,相信读完这篇文章,你会对极光推送有更加深入的理解,而不仅仅只是会集成而已. ...

  5. vmei-day04-Jcenter方式集成极光推送

    今天主要写了一个小demo来集成极光推送的功能到项目 第一步,先看proj_gradle配置: buildscript {repositories {jcenter()}dependencies {c ...

  6. Android之集成极光推送

    安卓端集成极光推送是很常见的,极光推送的简单高效性适合很多想要集成推送的APP,如果你要自己装逼,也可以自己写推送,只要想做都是可以的. 第一步.Gradle配置(Module的build.gradl ...

  7. 三分钟帮你集成极光推送——和那些可能你不知道的事

    本文简介:本文前篇,可以帮助朋友们快速集成极光推送.本文后篇,是我自己项目实践的一些总结和心得,应该对读者们还是很有参考价值的,相信读完这篇文章,你会对极光推送有更加深入的理解,而不仅仅只是会集成而已 ...

  8. php集成极光推送,thinkphp 写APP接口集成极光推送的例子

    下面我们来看一篇关于thinkphp 写APP接口集成极光推送,对于app的数据都得通过接口来实现了,当然也有内置数据库的不过这种非常少了. 最近用Thinkphp写了个App接口用到第三方推送功能, ...

  9. React-Native集成极光推送(Android和IOS)

    React-Native集成极光推送的具体流程如下: 本文选取的是极光官方维护的react-native推送插件,github地址:https://github.com/jpush/jpush-rea ...

最新文章

  1. 宋仲基宋慧乔没能找到对的人,算法能帮我们找到么?
  2. Virtualbox设置虚拟机访问外网以及主机访问虚拟机
  3. navicat 连接 mogodb 报错 requires authentication
  4. opencv学习笔记11:图像滤波(均值,方框,高斯,中值)
  5. SSL 和 TLS 介绍
  6. QQList列表功能实现
  7. 【安装包】eclipseEE(IDE)
  8. hdu 5003 模拟水题 (2014鞍山网赛G题)
  9. android obtain,Android 模拟Message.obtain(),构建自己的缓存池
  10. Boost搜索引擎项目
  11. IOS6区别于IOS5的几个不明显的改变
  12. upload.aspx
  13. 谈谈企业信息化 一种比较简单、灵活的产品物料多单位实现方案
  14. Java电商系统商品详情页存储方案设计
  15. 角速度与旋转矩阵的转换关系及思考
  16. Android系统手机USB驱动程序安装教程
  17. 傻瓜式制作在线热力图!只需三个步骤即可学会热力图的制作
  18. 基于JavaWeb实现的小说在线阅读网站
  19. 计蒜客NOIP模拟赛4 D2T1 鬼脚图
  20. php数字转换汉字,如何在php中将数字转换成汉字

热门文章

  1. UI设计干货模板|输入框设计临摹素材
  2. UI超实用通用图标素材模板
  3. NanoLog软件架构
  4. Linux内存管理:内存寻址之分段机制与分页机制
  5. python爬虫接口_python爬虫之百度API调用方法
  6. 笔记本电脑如何强制关机_笔记本按电源按钮不能关机只是关闭屏幕的解决办法...
  7. Python组合数据类型:字典dictionary
  8. nginx的目录结构和配置文件
  9. Spring Boot 学习之配置文件 application.yml
  10. java快速排序代码6_分分钟掌握快速排序(Java / Scala 实现)