最近初次了解到信鸽推送,详细记录一下整个过程。

一、下载SDK

需要去官网http://xg.qq.com/xg/ctr_index/download下载用户手册,分为服务端和客户端。根据用户手册选择适合当前业务场景的接口,文档中每个接口下有demo可以参考。

pushSingleAccount 推送消息给单个账号(注意分为Android和iOS,所以需要有不同的key和密钥)

public JSONObject pushSingleAccount(int deviceType, String account, Message message) //android使用
public JSONObject pushSingleAccount(int deviceType, String account, MessageIOS message, int environment) //IOS 使用

二、注册和生成证书

步骤可参考这篇博文 https://blog.csdn.net/iCandyss/article/details/51199008

获取应用的key和密钥,accessId,secretKey是申请信鸽账号后信鸽为用户生成的。服务端使用SECRET KEY。(操作证书的时候我放弃了,直接给前端要的)

ACCESS ID     2100257622
 ACCESS KEY     ALG1E3KK187E
 SECRET KEY     1d36fe96f3b463a5b44f77707d60427f

三、开发环境单元测试

package gov.etax.dzswj.xxzx.impl;import org.json.JSONObject;
import org.junit.Test;import com.tencent.xinge.ClickAction;
import com.tencent.xinge.Message;
import com.tencent.xinge.MessageIOS;
import com.tencent.xinge.Style;
import com.tencent.xinge.XingeApp;/*** @author hrui**/
public class AppTest{@Testpublic void TestXgIos(){int EXPIRE_TIME = 3600 * 24 * 3;String yh = "916204023525847402";MessageIOS message = new MessageIOS();message.setAlert("hello hrui!测试iOS啊啊啊");message.setBadge(1);message.setExpireTime(EXPIRE_TIME);XingeApp iosXingeApp = new XingeApp(2200257637L, "78d2a1972ebdb77bcd0f69504d2a326b");JSONObject iosResult = iosXingeApp.pushSingleAccount(XingeApp.DEVICE_IOS, yh, message, XingeApp.IOSENV_PROD);int iosRetCode = Integer.valueOf(iosResult.get("ret_code").toString());System.out.println("iOS按单个账户推送返回结果:"+iosRetCode);}@Testpublic void TestXgAndroid(){String yh = "916204023525847402";Message message = new Message();Style style = new Style(3, 1, 0, 1, 0);ClickAction action = new ClickAction();message.setStyle(style);message.setAction(action);message.setType(Message.TYPE_NOTIFICATION);message.setTitle("title");message.setExpireTime(3600 * 24 * 3);message.setContent("hello hrui!Android!!!");XingeApp androidXingeApp = newXingeApp(2100257621L,"07c66a2fb64893a5db62633a542f8770");JSONObject androidResult = androidXingeApp.pushSingleAccount(XingeApp.DEVICE_ANDROID, yh, message);int androidRetCode = Integer.valueOf(androidResult.get("ret_code").toString());System.out.println("android按单个账户推送返回结果:"+androidRetCode);}}

四、结果分析

一、出现问题:iOS信鸽推送,服务端返回0,手机app收不到消息

原因有:

1、可能是iOS推送环境填写错误,根据app是否上线适当选择。

public JSONObject pushSingleAccount(int deviceType, String account, MessageIOS message, int environment)
//iOS设备推送时environment,1:表示推送生产环境;2:表示推送开发环境  environment

2、证书过期

到信鸽后台不需要证书,所以调用服务可以成功,但从信鸽后台下发手机时是需要证书的,如果证书过期了,手机app会收不到消息。但Android不存在证书的概念,没有证书过期的说法。

3、XingeApp.jar版本问题

之前项目原有是1.1版本,后来我下了最新的1.1.8版本的,就可以了。

二、出现问题:推送单一账号时推送成功,但是推送所有设备时,服务端成功,但手机app接收不到信息。

原因:同时进行单元测试时,两个方法的推送内容不要相同,修改后再尝试一下。另外推送不要太频繁。

以上坑都遇到了,调整之后,发送成功。暂时能保证服务端调用信鸽原生接口,可以进行推送消息了。之后还有很多需要优化的事情,比如这个推送消息,点击进去就消失了,我以为点击进去能看到详细内容,后来得知这个app没有功能模块,需要后期开发,会更新的。

信鸽推送(Android和iOS):详细流程+问题解决相关推荐

  1. 腾讯信鸽推送Android SDK快速指南

    信鸽Android SDK是一个能够提供Push服务的开发平台,提供给开发者简便.易用的API接口,方便快速接入. 目前支持Android 2.2及以上版本系统. 本文档将引导用户以最快的速度嵌入信鸽 ...

  2. react native极光推送android和ios证书申请

    这两天终于把极光推送的整个流程跑通了,在android和ios上均能正常接收消息,并可在本地存储消息,这篇文章 先讲一下如何在极光上申请android和ios证书,下一篇文章讲解具体在react na ...

  3. Java xinge 消息推送Android和IOs

    xinge消息推送: 比如就像淘宝一样,用户下完订单,就会给用户提示一条信息:订单核对等等.如果我们也想实现类似的功能呢? 一.往pom.xml文件中引入包 <dependency>< ...

  4. git推送上传文件详细流程

    推 : 1.复制你要推的仓库地址,地址如下 2.在桌面新建一个文件夹,点进文件夹右键Git Bash Here  回车.这时候就会弹出一个黑色的框 3. 输入 git clone 右键选择Paste( ...

  5. 利用信鸽推送实现Android登录后强制退出的功能(单点登录)

    首先整理思路,先思考实现逻辑: 1.集成信鸽推送 2.实现自定义推送 3.在自定义推送中,接收推送的方法内启动强制退出功能. 思路逻辑很简单,但是实现起来就得一步一步做,先集成信鸽: 这里主要是参考官 ...

  6. android app 集成 信鸽推送

    推送其实挺中意小米推送的,并经用户群占比还是比较大的,奈何拗不过php后端哥们的选型,就只好用信鸽推送了,期间接入过程中也是遇到不少问题,所以记录下来,以后如果还是用信鸽推送的话,估计看看以前的博客, ...

  7. Android集成腾讯信鸽推送SDK

    推送是每个应用中常见的功能今天使用一下腾讯的信鸽推送听说信鸽推送保活率比较高~ 第一步先去官网注册账号https://xg.qq.com/推荐使用QQ直接登陆,进去之后点击"新建应用&quo ...

  8. React-native之友盟(UMeng)推送集成(超详细)(android版)----------小白的天堂

    React-native之友盟(UMeng)推送集成(超详细)(android版) 集成环境: React-native: 0.61.5 Umeng push sdk:6.0.5 测试环境: Andr ...

  9. Android Studio 2.0使用腾讯信鸽推送

    1 按照指示将下载下来的libs中的so和jar集成到AS上的libs中去. debug的时候:报错Multiple dex files define Landroid/support/v4/xx,不 ...

  10. java后台与android端集成信鸽推送和华为推送通道

    时间比较紧,并未调试. 需求:后端可以针对指定账号或者列表进行通知栏信息推送,优先使用华为通道.点击通知栏消息打开指定activity 后端版本V3,android sdk 3.2.7 一.后端部分代 ...

最新文章

  1. 前端学习(2252)推送代码
  2. Java中== equals hashcode浅析[转]
  3. 深度图补全-depth inpainting
  4. c++ 队列_RabbitMQ的死信与延迟队列,你真的会用吗?
  5. 2018/3/9 省选模拟赛 0分
  6. 任意图像转素描:Python分分钟实现
  7. Oracle生成100万条测试数据的方法
  8. 计算机考试金麦圈编号教程,计算机二级:数据处理.docx
  9. 智能家居,产业跌宕三十年
  10. Acer传奇Go电脑开机几分钟就会蓝屏怎么重装系统?
  11. 『NLP经典项目集』10:使用预训练模型优化快递单信息抽取
  12. GO/KEGG富集分析泡泡图中为什么基因的数目是小数?
  13. 码住!人工智能怎么影响教育?听这场直播就够了!
  14. 最大9W升压型DCDC多串LED恒流驱动
  15. 四、 Spark Webchat的安装
  16. 2021第一届网刃杯网络安全大赛-老练的黑客
  17. magick++ 简介
  18. fatal: repository not found
  19. 服务器监控与维护软件,服务器监控与维护软件
  20. vagrants流浪者物品掉落表全道具合成及打怪取得点

热门文章

  1. python课设答辩ppt_学生成绩管理系统答辩幻灯片.ppt
  2. ASEMI整流桥S35VB100参数规格,S35VB100封装尺寸
  3. 亚马逊网上书店、巴诺书店最佳畅销书《最后期限》
  4. vue播放报警音实现过程
  5. Ubuntu下搭建android开发环境
  6. RPG Maker MZ如何导入dlc素材?
  7. gridview的sort_asp.net GridView排序简单实现
  8. AlphaBlend失败,错误码87
  9. Android系统启动流程分析之启动应用
  10. W ndows7蓝屏0x00000024,Win7电脑蓝屏0x00000024错误的解决方法