code小生 一个专注大前端领域的技术平台公众号回复
由来前段时间给APP增加推送功能,经调研后接收到的结果是集成个推SDK,这从市场使用概率来看很不错,毕竟个推、腾讯TPNS(原名信鸽)、极光、友盟等都是比较流行的厂家服务,但对于开发者来讲,更重要的是官方文档是否易于阅读?官方客服沟通起来是否便捷? ,一份优秀的文档说明可以节约很大的成本,相信各位开发者深有感触吧。 问题产生个推Android集成官方文档: 按照上述文档集成完毕后,无论哪款机型,总是获取不到厂商token,但clientId可以获取到,这是问题一。 厂商token有如下两种查看方式,这两种方式并不在集成文档里,而是在Android常见问题里,
从上面两种方式中细心的你应该注意到了细节:厂商集成和保存厂商参数。 关于保存厂商参数这个很明确,在后台就可以看到,目前只提供了主流手机厂商通道(华为、小米、OPPO、VIVO、海外通道)的配置,如图: 我们需要做的就是在各个应用市场找到我们的应用(因为我的应用是已经上架的,如果是新创建,那么建议在创建的时候就打开)并为其打开推送服务就可以了;需要注意的是,华为需要多一步:在应用的签名信息里配置SHA256的值(如何获取已经上架应用的SHA256的值,华为有给教程哈,很nice)。 这一步还是获取不到厂商token,由此带来的体验是:
这里又有一个问题,什么是透传消息?该如何理解透传?
再前面配置厂商参数的时候我也注意到oppo还是vivo在打开推送服务的时候,会有透传消息的解释,当时我就感觉后端对我的引导有偏差,经过和技术支持沟通,确定的结果如下:
这下就明确了,在这之前的做法是一直纠结为什么离线收不到透传消息,因为后端给我的错误引导是透传应该是离线的时候收到的,它有穿透之意,比通知更高级,这就是我为什么在前面要强调对透传的理解。 进一步根据技术支持的反馈,通知的显示和点击是不需要客户端做处理的,只需要客户端严格按照文档要求配置icon和文本、服务端在发送通知的时候指定跳转页面即可,如果不指定跳转页面默认跳转APP首页。而透传消息的显示需要客户端做处理,也就是显示通知栏的操作,但点击跳转工作同样不需要客户端去做。 探寻解决方案到这里,基本的思路和逻辑清楚了,但依然有两个问题未解决:
这两个问题都是APP离线时才会触发,其实这两个问题归根结底还是同一个问题,就是厂商未集成。那么问题来了,我翻遍了个推Android集成文档 也就是本文开始给出的链接,但就是找不到集成厂商的步骤,接下来就入坑了,我在各个应用市场翻阅了推送服务相关文档、检查了各个推送服务的配置开关、尝试release测试、换主流手机测试、询问官方技术支持,但都一无所获,技术支持最多的一句回复就是让我看这个: 这个截图其实就是Android常见问题中的第四个问题。 但这不是扯呢么,问题我知道在哪,我就是想知道厂商集成在哪里?我要文档或者链接,最后实在不行了,准备做最后的决战,直接@个推官方技术支持直接要链接,结果给我扔出来一个从未谋面的链接: 我们来看下官方文档的整体分布: Android和多厂商居然是平级关系,更可恨的是集成多厂商之前必须先集成Android个推SDK,也就是我们前面做过的工作。那么接下来就集成呗,照着文档完毕后在控制台果然看到了梦寐以求的 解决问题后,跟官方技术支持提供了建议:
总结这次之所以爬坑最主要的失误有两个;
额外提及一点,在集成多厂商的时候,碰到关于服务端配置消息(通知和透传消息)点击事件的 图中红色部分的配置方式正式Android集成文档里提及的方式,而这里又不建议使用,这不是坑人嘛!我为了安全起见,根据官方提供的生成方式,在安卓端生成后发给后端使用,各位如遇到这个问题希望这里能帮到你,本文已结束。
|
|
来自: codingSmart > 《待分类》