极光征文|Jpush和Jmessage的集成厂商通道入门概述

本人是一个初接触极光推送和极光IM不久的菜鸟,最开始完全不知道厂商通道是做什么的,也不知道自己要怎么用。通过一段时间的使用,简单讲下自己的认识。


一、推送的实现

实现推送和即时通讯,现在比较方便省事的方式就是使用极光推送和极光IM。实现即时通讯一般也必须要实现推送。

推送的实现在iOS和Android平台有一定的区别,根据设备不同,应采取不同的送达策略。


首先先说Android的实现。

推送在Android平台实现方式上,简单的可以归纳为

(1)通过应用维持的长链接:

应用集成Jpush sdk后,应用在后台维持长链接。应用通过长链接接收到消息后,自己构建通知栏。

缺点是长链接断开后,推送将无法送达。

(2)通过厂商通道:

厂商推送指的就是手机硬件厂商提供的系统级别的推送服务。因为是系统服务,随手机开机后就一直存在着。

应用集成Jpush SDK和厂商通道的SDK,并在极光后台设置参数后。应用无需在后台运行,推送将通过厂商通道送达。

通过自定义通知栏,开发者可自定义拉起应用等操作。

开发者可根据需求集成多个厂商通道,提升推送的送达率。如即成小米,华为,oppo等通道。

厂商通道因不依赖应用后台连接的维持,所以有着较高的送达率。


然后是iOS。

iOS的通知栏只可通过APNs实现,实现方式类似于前面说的Android厂商通道,通知栏都由手机系统构建。然后再通过自定义通知栏,进行打开应用等操作。


二、即时通讯通知栏的实现

首先是Android

(1)Android系统集成Jmessage后,应用在后台运行时,应用可收到消息。

Jmessage通过消息构建通知栏。只要Jmessage应用进程存在,长连接正常,就会在收到聊天消息时展示通知栏通知


(2)当应用后台被完全杀死状态下,需要实现消息推送,则需要集成Jpush和厂商通道。

实现流程为首先将消息通过厂商通道送达设备后,该设备通知栏展示该消息。然后通知栏可自定义为点击后拉起应用,并获取对应的会话。通过该会话,可获取到未读消息、离线消息等信息。


iOS实现

消息通知栏只可通过APNs实现。然后再通过自定义通知栏,进行打开应用、Jmessage、获取会话、获取离线消息等等操作。

Jmessage sdk应用后台运行时,会通过APNs发通知栏消息。另外Jmessage在应用打开状态时,不会发通知栏消息。


「本文为极光征文参赛文章」

你可能感兴趣的:(极光征文|Jpush和Jmessage的集成厂商通道入门概述)