帖子
帖子
用户
博客
课程

官方版极光推送(ajpush)demo

YonBuilder移动开发 2021-11-2 09:53 874人浏览 353人回复
原作者: 常山赵子云 收藏 邀请
摘要

1、20180130更新:增加自定义声音支持 2、20190715更新:新增jpushVip模块-极光推送vip版本,支持手机厂商通道推送,成功率更高(需在极光官方开通vip) 注意:使用极光推送,必须到官网编译正式版本并且勾选极光推 ...


1、20180130更新:增加自定义声音支持
2、20190715更新:新增jpushVip模块-极光推送vip版本,支持手机厂商通道推送,成功率更高(需在极光官方开通vip)

注意:使用极光推送,必须到官网编译正式版本并且勾选极光推送模块,apploader中目前暂时未包含极光推送模块,所以无法在apploader中直接使用,通常会报类似:cannot call method 'init' of undefind at xxx.html 的错误。您也可以使用自定义loader进行调试。


附件为官方版极光推送模块各个api的简单代码示例。使用前请将config中的appkey换成你的app的。

###### 使用步骤 ######

1、在APICloud云端新建app并获取应用包名:预览-》端开发-》证书-》获取ios和android相应的包名(ID)。
2、登录极光推送官网http://www**.**,注册成为开发者,然后进入控制台,新建应用,并将在APICloud网站获取的应用包名填入对应位置,完成,在“应用信息”界面即可获取该到appKey,将该appKey复制,并写入本demo中的config文件中的app_key字段。
3、将代码提交到1中新建的app中,编译,安装,使用。注:在进行推送之前,app应该至少启动一次。
4、登录极光推送官网,进入控制台,选择2中新建的应用,开始发消息/通知等。

###### 问题补充 ######

1)、有开发者提到推送无法弹出通知到状态栏的问题,原因:在极光网站控制台发送“通知”类型的推送时,会直接弹出通知到状态栏;发送“消息”类型推送时,如果你的代码中已经通过setListeenr监听了消息,将不会自动弹出通知到状态栏,消息会直接交到回调函数中,开发者自行处理(即通常说的“透传”)。如果没有监听,会自动弹出通知到状态栏。
2)、如果中途你的app更新包名了,那么你需要将新的包名更新至极光网站,并获取新的appKey填写到config文件中,重新编译app,并且在推送之前,app应该至少启动一次。
3)、init可能受手机当前网络环境或者极光服务器响应速度的影响,存在延迟,从而导致getRegistrationId延迟,建议在getRegistrationId的回调中做操作,getRegistrationId能返回正确的值,则说明init肯定成功了。

###### 所有开发者都有的疑惑,统一回复 ######

极光推送Android版本,包括官方push模块推送在内的推送服务,都支持退出应用后还能收到推送,但不支持应用进程被强杀后收到推送(比如安全软件强杀,长按home键清除进程等)。

任何Android app包括原生开发的app,在强制杀死app进程后同样收不到(因为众所周期的原因,系统自带的Google推送服务无法使用,所以Android推送都是APP内置实现,因此容易被杀死),在部分android原生系统的手机上,过段时间后会自动恢复,能继续接收推送(APICloud上也同样能收到)。诸如小米,魅族,华为以及安装了安全软件的手机,杀死后,你的app就永远死了,无法接收推送,除非用户再次点击桌面图标将app开启。
一定有人会说,微信,QQ都可以啊
微信,QQ之所以能收到,是因为系统或安全软件根本就没杀死它,小米,魅族,华为等手机以及各大安全软件,都会有一个白名单,与其进行商务沟通,app进入这个白名单,你的app就不会被杀死,即使当时杀死了,也会再次把你自动调起来,接着就能收到推送了。
知乎上有帖,有兴趣的可以阅读一下:http://www**.**/question/29826231
目前极光已经接入了厂商通道推送,在应用被杀死情况下也能接收推送,可更大限度的提高推送成功率,可通过jpushVip模块使用。

###### 如何自定义推送消息的提醒声音 ######

注意:极光推送SDK的自定义声音只支持消息类型推送,通知类型推送依然走系统默认提示。

》将音频文件放置在你的代码包目录下,比如widget/res/目录下,本case放置文件为:widget/res/horse.ogg。
》提交代码,云编译自定义loader或者新的APP。
》在极光控制台(或者业务服务器调用极光的rest api)发起“消息”类型推送,并在可选设置中增加sound字段,值为你的本地音频文件地址,只支持widget://协议,比如widget://res/horse.ogg,如图[android自定义声音]。IOS类似,区别是不用传sound字段,极光已做处理,参考该帖:https://community.apicloud.com/bbs/thread-25615-1-1.html。如图[ios自定义声音]。
》音频文件最好为mp3格式,并且在300kb以内

AJPush_Demo.zip
android自定义声音
IOS自定义声音
评论
874人参与,353条评论

精彩评论
  • 新传 实习司机 57Y币
    发表于 2015-1-25 11:52
    强,好迅速~~
  • davylaker 马路杀手 174Y币
    发表于 2015-1-26 12:01
    应用关闭后,收到推送消息能透传吗?怎么做?
  • 常山赵子云 官方版主 7575Y币
    发表于 2015-1-26 14:03
    davylaker 发表于 2015-1-26 12:01
    应用关闭后,收到推送消息能透传吗?怎么做?

    透传见index.html页面的监听appintent的代码。
  • davylaker 马路杀手 174Y币
    发表于 2015-1-26 15:08
    常山赵子云 发表于 2015-1-26 14:03
    透传见index.html页面的监听appintent的代码。

    以前root是main.html,换为index.html后在android下好了。
    但是在ios下,又有问题:

    应用关闭时,能收到推送,但没有透传消息,应用前台时收不到推送。

  • davylaker 马路杀手 174Y币
    发表于 2015-1-26 15:52
    davylaker 发表于 2015-1-26 15:08
    以前root是main.html,换为index.html后在android下好了。
    但是在ios下,又有问题:

    解决了,在ios下还是得用setlistener
  • 风风 萌萌的小学生 9Y币
    发表于 2015-1-26 18:05
    <param name="channel" value="15e45ec768f44f795442535d" />  这个VALUE用默认的吗
  • 风风 萌萌的小学生 9Y币
    发表于 2015-1-26 18:05
    我按照你写的配置了,推送不了晕
  • xw332 实习司机 539Y币
    发表于 2015-2-2 11:18
    按例子测了,没推送成功
  • xw332 实习司机 539Y币
    发表于 2015-2-2 12:31
    推送成功了,要等用户统计的数字生效,就能推了
  • endian86 驾校小白 1344Y币
    发表于 2015-2-9 13:54
    郁闷了。。应用在前台时,收不到消息啊。。
  • endian86 驾校小白 1344Y币
    发表于 2015-2-9 13:59
    这里接收不到。。擦。
  • lions 实习司机 967Y币
    发表于 2015-2-17 14:44
    下来试下。
  • iptv 新手上路 9472Y币
    发表于 2015-5-27 16:50
    endian86 发表于 2015-2-9 13:59
    这里接收不到。。擦。

    在极光后台发送的时候  有两种消息类型   一种是消息  一种是  通知
    你换另一种发送试试看。这个setLister的方法是接受消息的,对通知无效。
  • liufuwen 驾校小白 10Y币
    发表于 2015-9-28 15:58
      推送成功,就是体验不太好
  • Metro 实习司机 492Y币
    发表于 2015-10-13 14:33
    自定义apploader也不行吗,我的在自定义loader里面运行的时候也能打印出Init方法里返回的状态是1成功的,但是在极光后台却还是没有注册设备数,无法推送。
  • Metro 实习司机 492Y币
    发表于 2015-10-22 02:42
    davylaker 发表于 2015-1-26 15:52
    解决了,在ios下还是得用setlistener

    跟你同样的问题,你说的在ios下还是得用setlistener是什么意思?api没这个方法啊
  • hello_kitty 新手上路 429Y币
    发表于 2015-10-22 20:44
    有时候绑定tag和alias不成功,返回6002,特别是晚上12点过后。
  • 常山赵子云 官方版主 7575Y币
    发表于 2015-10-26 13:59
    hello_kitty 发表于 2015-10-22 20:44
    有时候绑定tag和alias不成功,返回6002,特别是晚上12点过后。

    可能是极光服务器正在维护。设置超时了,重试一遍即可。


  • kankancom 新手上路 197Y币
    发表于 2016-1-4 16:50
    就是ios拿不到id,安卓要第二次才能拿到id

查看全部评论>>