uniapp项目APP端 集成极光JPush消息推送

2,365 阅读2分钟

一、查找 客户端SDK集成插件

基于 Uniapp开发的的极光推送插件,和集成到 iOS/Android 工程里的 demo。

官方地址:github.com/jpush/jpush…

二、接入

  • 1.将 nativeplugins/JG-JPush 导入项目对应位置。
    在根目录下创建nativeplugins目录,在插件市场下载极光推送官方SDK离线安装包解压放至该目录下(如下图):
    image.png
  • 2.项目 manifest.json 中接入 JG-JPush 插件,并配置插件配置(如下图)。
    两种方式:
    • 本地插件:在APP原生插件配置那里 将 nativeplugins/JG-JPush 导入项目对应位置,并配置插件配置(ios与Android的APPKEY极光 portal 注册分配) 及 打包时的android包名或Bundle ID即AppID,必须对应极光后台的配置;其它的选配。)。
    • 云端插件:在插件市场购买0元云包,需要登录DCloud绑定对应项目,才能检测到云包 并导入。 注意:不要勾选uniPush! image.png
  • 3.在项目中使用插件
// 引入
const jpushModule = uni.requireNativePlugin('JG-JPush');

// 其它需要用到的API:
// 初始化服务
jpushModule.initJPushService();
// 开启日志
jpushModule.setLoggerEnable(true);
jpushModule.addConnectEventListener(result=>{
    let connectEnable = result.connectEnable
    uni.$emit('connectStatusChange',connectEnable)
});

jpushModule.setIsAllowedInMessagePop(true)
// 设置别名
jpushModule.setAlias({
    'alias' : userInfo.loginName.split('@')[0],  // 登录账号邮箱的前缀
    'sequence': 1
})
// 获取注册ID
jpushModule.getRegistrationID(result => {
console.log("注册ID:", result.registerID)
})
// 通知事件回调
jpushModule.addNotificationListener(result=>{
    // 这里做你自己接收消息通知的回调方法
    unifiedCallback(result)
});
  • 4.引入JG-JCore 插件,用于适配更多的极光 Uniapp 插件,必须引入。

三、坑

  • 服务端使用的是java接入,通过设置别名,找到对应当前登录人的别名来进行推送消息的;我们要确保前端成功设置了别名,如果设置成功在极光后台的别名管理里面是有数据的。别名设置失败的原因有可能是:
    1、安卓或ios配置的APPKEY与极光后台不一致
    2、安卓打包的Android包名 或 ios的Bundle ID(AppID)与极光后台不一致
    3、引入插件失败,打印检查jpushModule是否为空值。