apicloud极光推送

2024-01-22 05:38
文章标签 推送 极光 apicloud

本文主要是介绍apicloud极光推送,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 //在极光注册上传应用的 appKey 和 masterSecret  private final static String appKey = "*****";private final static String masterSecret = "****";private final static int maxtrytimes = 3;private static JPushClient jpushClient = new JPushClient(masterSecret, appKey, maxtrytimes);public PushPayload buildPushObject(String title, String content,String from, Audience audience ,Map extra,Boolean sendNotify) {//推送对象构造AndroidNotification android = AndroidNotification.newBuilder().setTitle(title).setAlert(content).addExtra("from", from).addExtra("sendtime", System.currentTimeMillis()).build();IosNotification ios = IosNotification.newBuilder().incrBadge(1).addExtra("from", from).setSound("default").addExtra("sendtime", System.currentTimeMillis()).build();Notification notification = Notification.newBuilder().setAlert(content).addPlatformNotification(android).addPlatformNotification(ios).build();//通知构造Message msg;//消息构造if(extra==null){msg = Message.newBuilder().setTitle(title).setMsgContent(content).build();}else{msg = Message.newBuilder().setTitle(title).setMsgContent(content).addExtras(extra).build();//发送额外信息可用addExtras传map,也可直接用addExtra传键值对}if(sendNotify){return PushPayload.newBuilder().setPlatform(Platform.android_ios()).setAudience(audience).setNotification(notification).setMessage(msg).build();}else{return PushPayload.newBuilder().setPlatform(Platform.android_ios()).setAudience(audience).setMessage(msg).build();}}public static void send() throws APIConnectionException, APIRequestException{//testSend();MessagePush s = new MessagePush();Map extra = new HashMap();extra.put("title", "好消息【点击查看】");PushPayload payload = s.buildPushObject("好消息【点击查看】", "您有一条待办需要处理!","测试", Audience.all(),extra,false);PushResult result = s.jpushClient.sendPush(payload);System.err.println(result);}
//apicloud 测试极光推送成功 
var jpush = null;apiready = function() {
initPush();
}function initPush(){// 实例化极光推送对象jpush = api.require('ajpush');// 初始化推送服务,只Android有效,ios上会自动初始化jpush.init(function(ret, err) {});//设置推送时间jpush.setPushTime({days: 1,startHour: 0,endHour: 23}, function(ret, err){});// 监听应用进入后台,通知jpush暂停事件api.addEventListener({name : 'pause'}, function(ret, err) {//统计-app暂停//jpush.onResume();});// 监听应用恢复到前台,通知jpush恢复事件api.addEventListener({name : 'resume'}, function(ret, err) {//统计-app恢复jpush.onResume();});// 监听通知被点击(Android)api.addEventListener({name : 'appintent'}, function(ret, err) {if (ret && ret.appParam.ajpush) {// 通知被点击后处理executeNotice(ret, "appintent");}});// 监听通知被点击(iOS应用处于后台)api.addEventListener({name : 'noticeclicked'}, function(ret, err) {if (ret && ret.value) {// 通知被点击后处理executeNotice(ret, "noticeclicked");}});// 消息监听jpush.setListener(function(re, er) {//alert($api.jsonToStr(re));if (re) {var tit = re.title; // 标题var con = re.content; // 内容var ex = {}; // 附加字段// 附加字段不为空if(re.extra){var ext = re.extra;ex = {"extra" : ext};}// 转为状态栏通知notification(tit, con, ex);}});
}// 监听到的消息转为状态栏通知
function notification(t, c, e){api.notification({vibrate : [300, 500], //震动时间节奏sound : 'default', //系统默认提示音light : false, //是否亮灯,需设备支持notify : {//状态栏通知title : t || "系统消息", //标题,默认值为应用名称,只Android有效content : c, //内容,默认值为'有新消息'extra : e, //传递给通知的数据,在通知被点击后,该数据将通过监听函数回调给网页updateCurrent : false//是否覆盖更新已有的通知,取值范围true|false。只Android有效}}, function(ret, err) {//if(ret){//api.alert(ret.id);//id为通知ID,可用于取消通知//}});
}// 通知被点击后处理
function executeNotice (ret, type) {var ajpush_obj; // 信息对象var extra = {}; // 附加字段if(type == "appintent"){ajpush_obj = ret.appParam.ajpush;if(!isEmptyObject(ajpush_obj)){if(!isEmptyObject(ajpush_obj.extra)){extra = ajpush_obj.extra;}}}else if(type == "noticeclicked"){ajpush_obj = ret.value;if(!isEmptyObject(ajpush_obj)){c = ajpush_obj.content;// 转为json字符串ajpush_obj = JSON.stringify(ajpush_obj);// 再转为json对象ajpush_obj = $.parseJSON(ajpush_obj);// 判断附加参数是否为空if(!isEmptyObject(ajpush_obj.extra)){//extra = $.parseJSON(ajpush_obj.extra);extra = ajpush_obj.extra;}}}// 附加字段不为空if(!isEmptyObject(extra)){if (api.systemType === "android") {// 赋值到附加字段(格式化为json)extra = JSON.parse(extra);}// 判断附加字段值if (extra.aa) { // 极光推送后台中添加的附加字段// 你的逻辑代码}}
}


这篇关于apicloud极光推送的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631999

相关文章

Android 友盟消息推送集成遇到的问题

友盟消息推送遇到的问题 集成友盟消息推送,步骤根据提供的技术文档接入便可。可是当你集成到项目中去的时候,可能并不是一帆风顺就搞定,因为你项目里面是可能集成了其他的sdk(比如支付宝,微信,七鱼等等三方的sdk)。那么这个时候,再加上友盟的消息推送sdk集成可能就会出现问题。 问题清单 友盟消息推送sdk和支付宝sdk冲突问题 后台配置了消息推送,也显示发送成功,但是手机没有收到消息通知

Redis应用之Feed流关注推送

我的博客大纲 我的后端学习大纲 -------------------------------------------------------------------------------------------------------------------------------------------------# 3.好友关注: 3.1.关注和取关: a.接口说明:

GIT-macOS配置推送代码到GitHub

文章目录 前言1. **设置 HTTP/HTTPS**临时设置(仅对当前会话有效)永久设置(写入配置文件) 2. **设置 SOCKS **3. **取消设置**4. **验证配置**5. **测试推送** 总结 前言 macOS配置推送代码到GitHub 1. 设置 HTTP/HTTPS 临时设置(仅对当前会话有效) git config --global ht

Linux平台下利用JNI+双向RMI实现远程推送

一、 前言  作为一种优秀的编程语言,Java在许多方面具有突出的优越性。其中,RMI技术充分展现了Java卓越的分布式计算能力,而JNI技术则体现了Java结合异种编程语言的强大能力。人们常说,RMI是“从Java到Java”,这种说法忽视了这样一个事实:Java可利用JNI技术很容易地与原有系统连接。JNI+RMI的技术解决方案极大地延伸了Java的分布式功能。  本文的写作是基于这样一种实

一步步教你接入个推 推送

一: manifast中的配置 权限: <!-- 个推SDK权限配置开始 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permissi

【gitlab 上传代码】gitlab 推送本地代码到远程仓库

1、安装git。 2、新建项目,只勾选私有,或者公开,注意不要勾选readme 3、添加和配置SSH公钥 cd ~/.ssh如果提示 “ No such file or directory”,手动的创建一个 .ssh文件夹即可mkdir ~/.sshgit config --global user.name "赖德发"git config --global user.email "lai

【Git远程仓库】将本地仓库推送到github(踩坑记录)

上一篇博客已经介绍了git本地仓库的基本操作,接下来记录一下如何将本地仓库上传到远程仓库中 远程仓库:托管在因特网的版本库,保存版本库的历史记录,多人协作 1. 创建远程版本库,得到远程仓库git地址 2. 本地仓库添加远程仓库地址 git remote add pzclient(这是取的别名) https://github.com/sanzh113/companyManage.git

深圳补贴资讯推送:2024光明区科创企业扶持申报啦

深圳光明区的科创补贴来啦,深科信整理项目的具体补贴标准和申报时间如下: 本次可申报补贴的项目有 国内外高水平人才团队创新创业资助、 高水平科技交流活动资助、 科普交流及赛事活动资助、 科普基地认定配套资助 四个项目最高给予补贴500万元! 一、国内外高水平人才团队创新创业资助 补贴标准: 1.重点项目 (1)对2022年以后通过评审的市级、省级及以上高层次人才团

iOS P8证书推送测试

最近在配合服务端人员调试相关的 APNS auth key 推送的问题,相比于苹果的P12证书的推送,P8证书的推送显得方便很多,P8的优势在于简单,安全 容易生成 最重要的是不会过期。 现在我们来看下测试具体流程: 方法一 地址:https://developer.apple.com/account/resources/authkeys/list 1.点击Keys+ 2.注册一个k