跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

消息透传

完全自定义处理(透传)适配SDK6.0.1以下版本

若开发者需要实现对消息的完全自定义处理,则可以继承 UmengMessageService, 实现自己的Service来完全控制达到消息的处理。使用完全自定义处理后,PushSDK只负责下发消息体且只统计送达数,展示逻辑需由开发者自己写代码实现,点击数和忽略数需由开发者调用UTrack类的trackMsgClick和trackMsgDismissed方法进行统计。1、实现一个类,继承 UmengMessageService, 重写onMessage(Context context, Intent intent) 方法参考 demo 应用中UmengNotificationService,详细内容请参考Demo。代码如下:

public class UmengNotificationService extends UmengMessageService { @Override public void onMessage(Context context, Intent intent) { String message = intent.getStringExtra(AgooConstants.MESSAGE_BODY); Intent intent1 = new Intent(); intent1.setClass(context, MyNotificationService.class); intent1.putExtra("UmengMsg", message); context.startService(intent1); }}

2、在AndroidManifest.xml 中声明:

<!-- 请填写实际的类名,下面仅是示例代码--><service android:name="【应用包名】.UmengNotificationService" />

3、在自定义Application类的onCreate方法中调用:

mPushAgent.setPushIntentServiceClass(UmengNotificationService.class);

说明:

  • 打开消息行为的数据统计:默认情况下,SDK将用户点击通知栏的行为定义为“打开消息”。使用完全自定义处理后,SDK只能记录消息送达的数据,无法记录消息打开的数据。要记录消息打开的数据,你可以在应用中定义打开消息的语义,并使用以下接口向服务器发送消息打开的数据以便统计:UTrack.getInstance(context).trackMsgClick(msg);

  • 也可以根据需要对自定义处理的消息进行忽略统计:UTrack.getInstance(context).trackMsgDismissed(msg);

  • 如果需要打开Activity,需为Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否则无法启动Activity。

  • 如果使用了完全自定义处理后,又想恢复成【友盟+】的默认的处理,可以通过如下设置来恢复mPushAgent.setPushIntentServiceClass(null);