怎么使用融云IM的推送功能,融云推送API

当然首选你得先集成SDK

随后自定义一个 BroadcastReceiver 类

为了接收推送消息,您需要自定义一个继承自 PushMessageReceiver 类的 BroadcastReceiver (必须实现,否则会收不到推送消息),实现其中的 onNotificationMessageArrivedonNotificationMessageClicked 然后把该 receiver 注册到 AndroidManifest.xml 文件中。

自定义的 BroadcastReceiver

public class DemoNotificationReceiver extends PushMessageReceiver {
 @Override
 public boolean onNotificationMessageArrived(Context context, PushNotificationMessage message) {
    return false;
 }

 @Override
 public boolean onNotificationMessageClicked(Context context, PushNotificationMessage message) {
    return false;
 }
}

注册到应用的 AndroidManifest.xml 里面:


    
        
        
        
        
    

onNotificationMessageArrived 用来接收服务器发来的通知栏消息(消息到达客户端时触发),默认return false,通知消息会以融云 SDK 的默认形式展现。如果需要自定义通知栏的展示,在这里实现自己的通知栏展现代码,同时 return true 即可。

onNotificationMessageClicked 是在用户点击通知栏消息时触发 (注意:如果自定义了通知栏的展现,则不会触发),默认 return false 。如果需要自定义点击通知时的跳转,return true 即可。融云 SDK 默认跳转规则如下

只有一个联系人发来一条或者多条消息时,会通过 intent 隐式启动会话 activityintent 的 uri 如下:

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder builder = Uri.parse("rong://" + this.getPackageName()).buildUpon();

builder.appendPath("conversation").appendPath(type.getName())
        .appendQueryParameter("targetId", targetId)
        .appendQueryParameter("title", targetName);
uri = builder.build();
intent.setData(uri);
startActivity(intent);

如果你的 AndroidManifest.xml 里面配置 A activity 拦截了这个 intent ,那在点击这条通知栏消息 时就会启动 activity A 。


  
      
      

      
  

多个联系人发来多条消息时,通过 intent 隐式启动会话列表 activityintent 的 uri 配置如下:

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder builder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
builder.appendPath("conversationlist");
Uri uri = builder.build();
intent.setData(uri);
startActivity(intent);

如果你的 AndroidManifest.xml 里面配置 B activity 拦截了这个 intent,那在点击这条通知栏消息 时就会启动 activity B



   
       
       
       
   

可以在融云开发者后台 广播推送-广播消息-推送中,发起远程推送。

点击推送消息时会触发出如下 action 事件:

Intent intent = new Intent();
intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);

Uri.Builder uriBuilder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
uriBuilder.appendPath("push_message")
        .appendQueryParameter("targetId", targetId)
        .appendQueryParameter("pushData", pushData)
        .appendQueryParameter("pushId", pushId)
        .appendQueryParameter("extra", extra);

startActivity(intent);

如果你的 AndroidManifest.xml 里面配置了 C activity 拦截这个 action, 那么点击时就会跳转到 activity C




    
    

    


通过以上步骤,您已完成了融云推送服务的集成。

你可能感兴趣的:(怎么使用融云IM的推送功能,融云推送API)