更新记录

V2.0.4(2023-10-13)

同步更新极光5.2.0版本,适配华为的消息分类

V2.0.3(2023-02-24)

去除极光自启动的相关组件,防止小米应用市场审核问题

V2.0.1(2023-02-19)

【重要更新!】初始化前需要先确定是否同意协议! 修复iOS打包报错问题

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:11 - 16

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


JY-JPushThird插件使用说明

如果有问题或者其他需求(如新增方法等),可联系我处理;

如果有其他原生插件需要定制开发,也可以联系我开发。

注意:

  • 本插件为JY-JPush的厂商推送版本,如果没有厂商推送的需求,建议使用普通版本:@JY-JPush普通版
  • 本插件也不支持上架GooglePlay(GooglePlay商店对数据收集有要求),如果需要上架GooglePlay,请使用GoolePlay版:@JY-JPush谷歌商店版

所有的方法,数据返回时和极光返回的数据保持一致,安卓和iOS的格式不一样!需要开发者自己判断处理


本插件基于JY-JPush版本开发,所有的方法和JY-JPush 一致,插件使用方法,请查看JY-JPush:@JY-JPush普通版


自定义基座制作方法、常见问题等,可查看简书地址

https://www.jianshu.com/p/fb2ac886901b


JYJPush插件交流群:884121331 希望大家踊跃加群,相互交流沟通学习


我的QQ是:374850759 (加好友麻烦备注:JY-JPush插件)



请注意,iOS请关闭Manifest里面的Push模块!(不会对iOS和安卓推送有任何影响)
关闭后,请在Manifest搜索Push,检查是否还有除开JY-JPush的其他Push方法,如果有,可以手动删除(HBX的Bug,需要手动删除)

一、插件使用流程(原生插件调试,都需要自定义基座)

1.配置Appkey及渠道信息(安卓渠道信息推荐Andorid,iOS渠道信息推荐App Store),Appkey来源是极光官网,也就是需要先去极光官网进行注册,添加应用,然后配置推送设置(安卓包名、iOS证书等)

a.找到manifest.json,原生插件配置
b.勾选JY-JPushThird
c.填写appkey及channle(注意需保证包名和appkey在极光的配置一致)

2.引用原生插件(和JY-JPush不一致了,注意一下)

const jyJPush = uni.requireNativePlugin('JY-JPushThird');

安卓必须调用!!!

SetAuth的调用示例:

const jyJPush = uni.requireNativePlugin('JY-JPush'); 
jyJPush.registerSDKCallBack(sdkCallBack=> { 
    console.log("sdk Callback 结果 " + JSON.stringify(sdkCallBack)); 
}) 
// 此处只是演示 授权,实际应该弹出自己的隐私授权页面,或者用uniapp提供的隐私协议 
setTimeout(function() {
    jyJPush.setAuth({
        auth: "1"
    }, res => {
        console.log("auth 结果 " + JSON.stringify(res));
        if (res.errorCode == 0) {
            jyJPush.android_init(initRes => {
                console.log("init 结果 " + JSON.stringify(initRes));
            })

        }
    })
}, 5000);
//  需要同意协议后,安卓需要调用这个,iOS不需要
jyJPush.android_init(res=> {

uni.showToast({
icon:'none',
title: JSON.stringify(result)
})

})

3.厂商配置教程

在Manifest.json,原生插件配置,勾选JY-JPushThird
按照描述,填写相关的厂商配置
打开极光推送的后台,开启并配置相关的厂商推送数据

4.厂商配置数据规范程

华为:
填写android_hw_appid,格式为:appid=*******(具体值为华为后台分配的appid);

============= 换行符 =============
小米:
填写android_xm_appid,格式为:MI-*****(小米后台的值,加一个前缀 MI-)
填写android_xm_appkey,格式为:MI-*****
============= 换行符 =============
OPPO:
填写android_oppo_appid,格式为:OP-*****(OPPO后台的值,加一个前缀 OP-)
填写android_oppo_appkey,格式为:OP-*****
填写android_oppo_appsecret,格式为:OP-*****
============= 换行符 =============
VIVO:
填写android_vivo_appid,格式为:*****(直接填写VIVO后台的值)
填写android_vivo_appkey,格式为:*****
============= 换行符 =============
魅族:
填写android_mz_appkey,格式为:MZ-*****(魅族后台的值,加一个前缀 MZ-)
填写android_mz_appid,格式为:MZ-*****
============= 换行符 =============
华硕:
填写android_appkey,格式为:极光后台的appkey
============= 换行符 =============

二、测试对接情况,判断厂商推送是否完成对接

测试方法:

1.配置好所有的厂商值后,开启极光后台的厂商推送配置;自定义基座,保证随便设置alias后,返回的Code = 0,自定义基座测试方法如下:@自定义基座调试

2.拿出对应需要测试厂商推送的设备,先打开APP,设置一个Alias,去极光后台推送,检查APP在线是否能接受,如果能,则继续;如果不能,则检查是否失败;检查方法请查看JYJPush文档

3.将APP进程杀掉,继续在极光后台推送,查看是否有推送目标、推送后是否走了厂商通道;如果有,则看是否收到推送;如果没有,则重试步骤2(开启厂商后,建议等待几分钟以后再测试)

三、厂商推送注意事项

1.厂商推送开启后,部分厂商所有的消息会优先走厂商推送,这样的话,消息监听方法则失效(addJYJPushReceiveNotificationListener)!!!如果需要按照极光通道优先、厂商通道补充的话,需要在推送时,设置优先级,具体请查看极光推送服务端的API教程

2.厂商推送成功推送后,如果APP是关闭的状态,点击消息会打开APP(如果没有打开,请检查手机的权限设置,如悬浮窗、弹出窗口等);但是打开APP后,不会触发addJYJPushReceiveOpenNotificationListener方法;如果有需求需要知道此时的内容,需要在推送时,设置额外字段,如:uri_action、uri_activity(不同的厂商要求不一样),设置的值为:com.jiyi.jy_jpush_third.JYThirdActivity(注意!此为固定写法),服务端设置教程具体请查看极光官网

3.若按照步骤2要求,设置的url_action、uri_activity(新版本是Intent,格式为:intent:#Intent;action=com.jiyi.jy_jpush_third.JYThirdActivity;component=这里是你的包名/com.jiyi.jy_jpush_third.JYThirdActivity;end),则addJYJPushReceiveOpenNotificationListener会收到单独的数据,格式和普通消息不一致,注意区分!!!!;如果进程被杀掉,拿不到数据的时候,可以调用lastPushInfo这个接口,主动在APP启动的时候抓取因为点击哪条推送启动的APP,这样也可以获取到推送数据;但是这个接口需要延迟获取,不能一启动就获取

四:备注

如果遇到任何问题,可以联系QQ:374850759 一起调试

五:华为上架必须操作流程

5.1 下载自定义铃声的离线插件项目 @下载地址

5.2 删除其他文件只留下如下文件目录的文件:(如果没有,就手动创建)

-android
--assets
-package.json

5.3 打开package.json,删除iOS节点下的数据,只留一下数据:

{
    "name": "JY-PushSound 自定义推送铃声 iOS/Android",
    "id": "JY-PushSound",
    "version": "1.0.0",
    "description": "自定义推送铃声",
    "_dp_type": "nativeplugin",
    "_dp_nativeplugin": {
        "android": {
            "plugins": [{
                "type": "module",
                "name": "JY-PushSound",
                "class": "com.jiyi.jy_jpush.JY-PushSound"
            }],
            "integrateType": "aar"
        }
    }
}

5.4 去华为后台,找到自己的华为的HMS文件(updatesdkcas.bks),放到android/assets里面

5.5 再用本地插件的使用方法,在manifest选择JY-PushSound,然后打包即可

隐私、权限声明

1. 本插件需要申请的系统权限列表:

推送权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 JPush SDK会采集数据,详情可参考https://www.jiguang.cn

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问