更新记录
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 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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"
}
}
}