【移动应用开发技术】震惊!安卓推送SDK集成居然如此简单_第1页
【移动应用开发技术】震惊!安卓推送SDK集成居然如此简单_第2页
【移动应用开发技术】震惊!安卓推送SDK集成居然如此简单_第3页
【移动应用开发技术】震惊!安卓推送SDK集成居然如此简单_第4页
【移动应用开发技术】震惊!安卓推送SDK集成居然如此简单_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】震惊!安卓推送SDK集成居然如此简单!

震惊!安卓推送SDK集成居然如此简单!概述公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业0.1年了,Leader准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开

官网集成文档

学习了起来。其实早在自己大二的时候就集成过个推SDK,溜达一圈又回来集成个推推送SDK了,发现现在的个推SDK与当年相比,集成起来真的方便多了。这次集成的是Android推送SDK,希望这篇文章,可以让同学们可以更加快捷的集成个推推送。思维导图

cdn.xitu.io/2019/8/27/16cd2c41d4126fba?imageView2/0/w/1280/h/960/format/webp/ignore-error/1">https://user-gold-<atitle=详细步骤下载demo我的师傅大鸟哥告诉我,集成各类SDK的第一步骤都是下载个Demo,先把Demo跑起来看看是什么鬼。咱也不敢问,咱也不敢说,先去

下载个Demo玩玩。我选择的是国内版本的个推SDK,大家可以自行选择要下载的版本。使用AS3.1把

Getui_SDK_Demo_AS_maven

这个工程直接运行起来,出现了下面这个界面(此处已经对我个人参数进行了手动马赛克)。

"/>

好了,按我大鸟哥的意思至少demo已经成功运行起来了,接下去就是去把上述的APPID,APPKey等参数换成自己的,那么这些参数又是怎么来的呢?data:image/svg+xml;utf8,<?xmlversion=创建个推应用看完Demo后,慌兮兮打开官网集成文档,原来那些参数是需要创建应用才会获得的,而cid是个推SDK回调的,没啥说的,那就“注册登录-创建应用-获取配置”三连击

注册登录账号:

"/>data:image/svg+xml;utf8,<?xmlversion=创建应用登入成功后,点击我的应用进入,再接着点击右上角的《创建应用》就可以创建属于自己的应用了,因为我已经创建完成,所以此处有城墙一样厚的马赛克????????????

"/>data:image/svg+xml;utf8,<?xmlversion=填写自身APP的基础信息

"/>

敲黑板!!!,iOS是默认不勾选的,听说iOS有自带的推送系统?先不管了,勾上再说,他们爱用不用。data:image/svg+xml;utf8,<?xmlversion=获取配置数据由于我已经注册完成了,填完后的界面就要靠大家自行脑补了。应用创建成功后,就可以查看我们创建的APP所绑定的配置信息了。

"/>

看到这里,我终于知道了之前Demo里面的那些配置信息是哪里来的了,为了保证我这些参数是有效的,我还来了一波骚操作:

把Demo里面的工程的包名换成自己创建APP的包名,appid等信息也进行了替换,发现成功拿到了cid

,问了下他们技术支持,大概意思是

只要拿到cid,集成就完成了90%!!!

,鸟弟我激动的搓起了小手。后面的思路就清晰了,无非是把Demo里东西拷到自己的项目里面就完事了嘛。data:image/svg+xml;utf8,<?xmlversion=添加依赖及配置我使用Maven的方式集成了

版本的SDK,选用Maven是为了方(偷)便(懒)的集成!如果是选择手动集成的,

请疯狂戳我

先看下他们的资料包的内容

"/>

看这个资料包,发现要导入的东西还是蛮多的,

各种资源,我选择了Maven集成,那么jar包&so就无需导入了data:image/svg+xml;utf8,<?xmlversion=添加maven库allprojects

{

repositories

{

maven

{

url

'/nexus/content/repositories/releases'

}

}

}

复制代码dependencies

{

compile

fileTree(dir:

'libs',

include:

['*.jar'])

compile

'com.getui:sdk:'

}

复制代码配置之前创建的appid等依葫芦画瓢,这里就直接从demo那边拷过来就行了千万千万要小心,认真核对每一个参数,如果出现空格或者Appid与AppKey写反这类的

低级错误真的要检查到哭????????????manifestPlaceholders

=

[

GETUI_APP_ID

:

"你的

APPID",

GETUI_APP_KEY

:

"你的

APP_KEY",

GETUI_APP_SECRET

:

"你的

APP_SECRET"

]

复制代码导入个推res文件

千万千万别忘了,我之前就在这个地方踩了坑,使用maven集成就不再需要so文件,切记!配置可选权限可选可不选的权限,我这边是写上了,因为我项目中正好也需要用到这些权限,美滋滋~

<!--

支持iBeancon

需要蓝牙权限

-->

<uses-permission

android:name="android.permission.BLUETOOTH"/>

<uses-permission

android:name="android.permission.BLUETOOTH_ADMIN"/>

<!--

支持个推3.0

电子围栏功能

-->

<uses-permission

android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permission

android:name="android.permission.ACCESS_COARSE_LOCATION"/>

复制代码配置自定义服务Demo里面还配置了自定义的service,我也搞了后,官网上有这么一句话

为了让推送服务在部分主流机型上更稳定运行,从版本开始,个推支持第三方应用配置使用自定义Service来作为推送服务运行的载体为了让推送服务在部分主流机型上更稳定运行,从版本开始,个推支持第三方应用配置使用自定义Service来作为推送服务运行的载体都这么说了,鸟弟我二话不说就new一个自定义服务,进行空实现即可package

com.xinwenwang.xy;

import

com.igexin.sdk.PushService;

public

class

XyPushService

extends

PushService

{

}

复制代码新建的service

千万别忘了把新建的service注册到AndroidManifest.xml中,多么痛的领悟<service

android:name="com.xxxx.yyyy.XyPushService"

android:exported="true"

android:label="PushService"

android:process=":pushservice">

</service>

复制代码深入一想也可以理解为啥要加个空实现的service,就像集成微信分享一样,微信分享也要求继承一个指定的activity。编写集成这么一步步的走下来,要配置挺多东西的,终于要开始初始化SDK了????‍♀️????‍♀️????‍♀️初始化SDKcom.igexin.sdk.PushManager.getInstance().initialize(getApplicationContext(),

com.xxxx.yyyy.XyPushService.class);

复制代码我这边是在开屏页初始化个推推送的,大家可以随意,只要在activity初始化即可,

建议是初始化越早越好接收推送服务事件那么问题来了,搞了上面这么多东西,推送的消息或者透传是怎么个接收法呢?一头雾水有木有!我又跑回去看了看Demo,发现还有个叫

DemoIntentService

的玩意,打开一看里面有很多很多的回调,鸟哥说的话果然带劲呀,

Demo理解透,项目集成快!

建议大家直接把Demo中的DemoIntentService拷到自己的项目中,如果需要修改一些DemoIntentService里面的内容,自便哈。记得修改个名字,不然放在自己的项目里面真的太low了!我暂名为XyPushIntentService。

<!--

用户自定义服务继承自GTIntentService,作为SDK与APP桥梁服务,用来接收各种消息和命令回复-->

<service

android:name=".XyPushIntentService"

android:permission="android.permission.BIND_JOB_SERVICE"/>

复制代码//

XyPushIntentService

为第三方自定义的推送服务事件接收类

PushManager.getInstance().registerPushIntentService(getApplicationContext(),

XyPushIntentService.class);

复制代码测试总算集成完了,导入上述东西需要细心些哈,漏了一步有的你难受的。项目跑起来后,在XyPushIntentService会有cid的回调,最直观的方法是在logcat里面输入clientid,就可以看到在控制台输出日志了,

这个clientID相当于此APP在该设备上的唯一识别码。

"/>

最后一步肯定是创建通知了。

"/>data:image/svg+xml;utf8,<?xmlversion=data:image/svg+xml;utf8,<?xmlversion=

"/>data:image/svg+xml;utf8,<?xmlversion=这边只是创建了一个最最最简单的样式仅供参考,我看这界面上的功能估计可以满足各种运营的玩法了,我这边就不献丑了:)。

推送测试消息的时候,应用一定要在前台,在前台,在前台,重要的事情说三遍#尾声首次集成这类大型SDK让我意想不到的顺利,我和我的小伙伴们都????惊呆了????,后面我再仔细阅读了下个推的文档,他们家的功能还是很齐全的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论