第三方推送

1. 主流的第三方推送平台分类
手机厂商类:小米推送、华为推送。
第三方平台类:友盟推送、极光推送、云巴(基于MQTT)
BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送


2. 对比其他推送方式的特点
其他推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特点分别是:


优点:


成本低 
上述的推送大多数是免费的,假如自己实现则消耗过多资源(开发成本和后台管理、统计成本)
消息到达率高 
如果一个手机里有多个App使用了同一家推送服务,那么这些App将共用一条消息通道,即使你家的App推送服务被杀死了,那么只要用户打开了其他集成该推送服务的App,你家的推送就能到达用户
缺点


安全性低 
使用别人的服务器,所以你懂的。
服务会被杀死 
由于Android系统的机制,后台推送服务会被各种主动的或是被动的行为给杀死,而服务一旦被杀死,意味着就接收不到推送消息。


3.1 手机厂商推送
请记住一个潜规则:操作系统是不会杀死属于自己品牌的推送服务。


【1手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务
2比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。
当今市场上的Android手机系统份额最高是MIUI系统,即小米】


因为:免费、到达率高且在Android系统市场份额第一的MIUI系统上不被杀死。所以,如果要选择手机厂商的推送服务,请选择小米推送作为第三方平台实现推送服务


举个例子


腾讯新闻使用的小米推送,没有使用自己家的信鸽推送
淘宝使用了自家的阿里云推送,同时还集成了小米推送
百度视频和爱奇艺使用的是小米推送,没有用自家的百度推送


3.2 第三方平台类
请记住一个规则:推送系统会共享一条推送渠
【1这意味着假设你接入了友盟推送,而恰好今日头条也接入了友盟。
2有一天你的App被杀死了,但这时用户启动了今日头条,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。】
所以说,关于如何选择第三方平台类的推送,推送平台的规模效应就很重要了。 
那如何得知他们的规模和市场份额呢?按个人经验,主要看两点:


1问内部的朋友。
2看推送平台的合作客户里有哪些大的app 


3.3 BAT大厂的推送
BAT大厂其实并没有什么优势,同时谨记:


不要以为用了腾讯信鸽推送,就能占上微信的光保证你的App永远内部被杀死。
说个题外话,手机淘宝除了自家的阿里云的移动推送,同时也使用其它的第三方推送平台啊(比如友盟推送)。


4. 如何选择第三方平台推送服务?
主要从用户类别+实现成本+渠道来选择不同的使用场景 
1. 如果用户群体精准(使用小米手机或华为手机居多),可以考虑只集成对应手机厂商的推送;


【】注意:单一的手机厂商也能工作,比如小米推送在非小米手机上当然也能工作,只不过不是系统级别的服务了,容易被杀死。【】


如果用户群体广泛、希望实现成本低,可以考虑只使用单一第三方平台类的推送(极光、友盟等,选一个规模效应最大的)


如果用户群体广泛、不在意实现成本,个人建议: 
对于小米手机,使用小米推送;
对于华为手机,使用华为推送;
对于其他手机,只使用单一第三方平台类的推送(极光、友盟等等,选一个规模效应最大的)
【让不同的推送运行在各自擅长的环境里,最大化实现推送的到达率和产品的存活率】 


5. 推送消息类别的选择
5.1 推送消息的类别
通常第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。


通知栏消息:该类消息在被送达用户的设备后,直接以系统通知栏的形式展示给用户


】不会继续被传递到App】


透传消息:该类消息在被送达用户的设备后,还会继续传递到App


】1通过回调App的某个BroadcastReceiver的形式将消息传递到App内部。然后由App决定如何处理和显示这个消息。
2所以透传消息不一定会以系统通知栏的形式进行推送,由程序猿自定义】


5.2 消息类别的区别与特点
二者的区别在于:透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App
通知栏消息的优点:送达率高 
因为透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App,因此透传消息就增加一些被系统限制的概率,给系统杀死的概率就高一些,所以说,通知栏消息比透传消息应该能提供更好的送达率。


【我们来看下小米推送的官方文档描述:


1在一些 Android 系统(如 MIUI)中,受到系统自启动管理设置的限制,应用不能在后台自启动
2在这类系统中,如果在发送消息的时候对应的应用没有被启动,透传类消息将不能顺利送达。
3因此,对于对送达率要求很高的消息,建议尽量采用通知栏提醒的方式推送消息】


透传消息的优点:对消息操作程度高 & 自定义程度高 
提供了对消息数据的更灵活的操纵能力。 
【App如果仅仅通过通知栏消息,是无法接触到消息数据本身的。】


可自定义通知提醒的样式(包括提示样式、提示形式如声音等等)
所以大家可以根据不同的使用场景来对推送消息类别进行选择了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用Java语言向第三方数据成功的示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class PushDataToThirdParty { public static void main(String[] args) { try { String url = "http://example.com/receive_data"; // 第三方接收数据的URL String apiKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // OneNet平台API Key String data = "{\"temperature\": 25.6, \"humidity\": 60.2}"; // 的数据,可以是任意格式 // 构建请求URL String requestUrl = url + "?api_key=" + apiKey + "&data=" + URLEncoder.encode(data, "UTF-8"); // 发HTTP请求 URL obj = new URL(requestUrl); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); // 获取响应码 int responseCode = con.getResponseCode(); // 判断响应码并输出结果 if (responseCode == HttpURLConnection.HTTP_OK) { // 数据成功 System.out.println("Data push success"); } else { // 数据失败 System.out.println("Data push failed"); } // 关闭连接 con.disconnect(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的示例中,我们首先构建了一个请求URL,其中包含了OneNet平台的API Key和的数据。然后,我们使用`HttpURLConnection`类发了一个POST请求,获取了HTTP响应码。最后,根据HTTP响应码判断数据的成功与否,并输出结果。 需要注意的是,这只是一个简单的示例,实际应用中还需要考虑一些其它的因素,例如数据格式、网络连接等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值