Skip to content

About

No description, website, or topics provided.

Resources

Stars

76 stars

Watchers

17 watching

Forks

Repository files navigation

jpush-hbuilder-plugin

极光推送 官方支持的 Hbuilder 插件(Android & iOS)。是基于 HBuilder 提供的 uni-app 原生插件扩展 进而开发出的推送插件。

支持 iOS 和 Android 推送,同时适配各大厂商推送。

uniapp插件市场地址

极光推送官方SDK

接入

  • 1.将 nativeplugins/JG-JPush 导入项目对应位置。
  • 2.项目 manifest.json 中接入 JG-JPush 插件,并配置插件配置。
  • 3.在项目中引用插件
const jv = uni.requireNativePlugin('JG-JPush');
  • 4.引入JG-JCore 插件,用于适配更多的极光 Uniapp 插件,必须引入。

DEMO 体验

按照以下步骤快速体验 JPush_Hbuilder_demo:

  • 1.在极光 portal注册应用并开通推送功能。
  • 2.在项目 manifest.json 中配置您的推送信息
  • 3.HbuilderX 中制作打包自定义基座,包名,签名,bundleID 需要与对应 appkey 配置的应用信息保持一致
  • 4.HbuilderX 使用自定义基座运行即可

1.2 配置插件

HBuilderX 3.6.2 及之后版本,请打开mainfest配置文件,选择 App模块配置,勾选 Push 模块。

注意:不要勾选uniPush!

打开 manifest.xml,选中App原生插件配置,选择本地插件,导入 JG-JPush

然后配置各个属性,注意在HBuilderX中可能会出现乱序现象,请仔细认真填写

属性 描述 示例
JPUSH_OPPO_APPKEY android oppo appkey(选填) OP-12345678
JPUSH_OPPO_APPID android oppo appid(选填) OP-12345678
JPUSH_OPPO_APPSECRET android oppo appSecret(选填) OP-12345678
JPUSH_VIVO_APPKEY android vivo appkey(选填) 12345678
JPUSH_VIVO_APPID android vivo appId(选填) 12345678
JPUSH_MEIZU_APPKEY android meizu appkey(选填) MZ-12345678
JPUSH_MEIZU_APPID android meizu appId(选填) MZ-12345678
JPUSH_XIAOMI_APPKEY android xiaomi appKey(选填) MI-12345678
JPUSH_XIAOMI_APPID android xiaomi appId(选填) MI-12345678
JPUSH_HUAWEI_APPID android huawei appId(选填) appid=12345678
JPUSH_HONOR_APPID android honor appId(选填) 12345678
JPUSH_GOOGLE_API_KEY android google api_key(选填) g-12345678
JPUSH_GOOGLE_APP_ID android google mobilesdk_app_id(选填) g-12345678
JPUSH_GOOGLE_PROJECT_NUMBER android google project_number(选填) g-12345678
JPUSH_GOOGLE_PROJECT_ID android google project_id(选填) g-12345678
JPUSH_GOOGLE_STORAGE_BUCKET android google storage_bucket(选填) g-12345678
JPUSH_ISPRODUCTION_IOS iOS 是否是生产环境(选填) 是填true,不是填false或者不填
JPUSH_ADVERTISINGID_IOS iOS 广告标识符(IDFA)(选填) 如果不需要使用IDFA,可不填
JPUSH_DEFAULTINITJPUSH_IOS iOS 是否默认初始化(选填) 是填true,不是填false或者不填

Android 厂商配置说明

插件支持 OPPO VIVO 魅族 小米 华为 荣耀 FCM 七大厂商推送接入,如需接入请对应配置上述厂商信息。

API

Android 原生事件监听与补发

事件监听可以保留在原有 App 或页面中,不要求统一移到 App.vue 或 initJPushService() 之前。连接状态保存当前进程最近一次真实状态,登记连接监听时会立即补发;普通通知、透传、应用内消息、本地通知、标签/别名、手机号及命令结果按事件类型分别缓存,登记对应监听后按顺序补发。业务需要及时处理结果时,应尽早登记对应监听;晚登记的补发受下述缓存容量和进程生命周期限制。

Demo 保留初始化后登记连接、通知等监听的顺序,标签/别名及手机号监听分别保留在 tags.vue、other.vue。日志在初始化前开启;Android 命令监听在首页首次查询 RID 前登记,用于接收异步命令 2005。页面加载或恢复时仍需读取已保存的连接状态及 RID,避免错过 App 转发到页面的事件。

初始化后若尚未收到任何连接状态,插件会查询 SDK 服务进程的初始状态,只采纳异步命令 2004 的结果,并忽略查询接口的同步返回值。查询结果仅填补未知状态,不能覆盖已到达的真实连接/断开回调。

  • 普通事件提交到 JS 桥接方法后从队列移除,重新登记不会重复消费;桥接调用抛异常时保留当前事件,等待后续事件或重新登记时再尝试。
  • 每种事件类型最多缓存 100 条。达到上限时记录警告并淘汰最早等待的事件;正在投递的事件不会被淘汰。缓存仅当前进程有效,不跨进程死亡保存。
  • 同一种事件仍只保留一个监听,后登记的监听替换前一个;模块销毁仅解除该实例登记的监听,尚未发送的事件继续等待新监听。
  • 标签/别名等操作结果保留原始 sequence,业务侧仍需按请求匹配。桥接调用返回不等于 JS 业务消费确认,插件不提供跨进程或全链路恰好一次投递保证。
  • 通知点击统一进入上述队列,普通通知与本地通知分别等待各自监听。

Android 诊断日志(1.2.8)

调用 setLoggerEnable(true) 后,原生 Tag 为 Uniapp-JPush,首先输出 JG-JPush native plugin version=1.2.8,可用于核对实际打入 APK 的原生插件版本。日志不会强制开启。

关键字 含义
connect register / connect replay 登记监听及补发已知连接状态;cachedState=null 表示未知
connect state stored 保存连接状态,并标明是否已有监听
connect query accepted / connect query ignored 初始查询补齐状态,或因已有状态而忽略迟到查询
event received / event cached 收到事件,或因监听未登记而缓存
event register / event dispatch 登记事件监听及开始投递;trigger=register 表示登记时补发
event consumed / event retained 桥接调用正常返回后出队,或失败后保留
listener removed / connect remove ignored 实例销毁解除监听,或忽略旧实例对新监听的清理

新增队列日志只记录事件类型、队列长度、状态和实例标识,不额外复制消息正文。owner 是当前进程内的实例标识;桥接调用正常返回不等于 JS 业务消费确认。

升级时需替换 nativeplugins/JG-JPush/android/uniplugin_jpush-release.aar 并重新制作自定义基座或打包 App,单独更新 Vue/WGT 不会替换 Java 实现。

参考资料

官方文档

Support

  • 集成前请先尝试 demo 工程跑通
  • 出现问题请先打开 debug 模式,拿到前端和原生日志
  • 更多问题请前往极光社区

License

MIT © JiGuang

About

No description, website, or topics provided.

Resources

Stars

76 stars

Watchers

17 watching

Forks

Releases

Packages

Used by

Contributors

Languages