友盟推送

优质
小牛编辑
144浏览
2023-12-01

推送集成文档

前提

需要用户自己注册友盟账号,小米账号,华为账号,然后将注册的信息填入客服端的设置中,如下图:

初始化

  1. 必须在 Application 中进行SDK初始化,否则会造成推送失败.
    Ntalker.getInstance().initSDK(this, NativeDemo.siteid);// 初始化SDK, 请放置在Application子类中
    
  2. 默认在 XiaonengChatUI 包的build.gradle中配置了友盟推送.
     //PushSDK必须依赖基础组件库,所以需要加入对应依赖
     compile 'com.umeng.sdk:common:1.5.3'
     //PushSDK必须依赖utdid库,所以需要加入对应依赖
     compile 'com.umeng.sdk:utdid:1.1.5.3'
     //PushSDK
     compile 'com.umeng.sdk:push:4.2.0'
     //小米Push通道 
     compile 'com.umeng.sdk:push-xiaomi:1.0.0'
     //华为Push通道  
     compile 'com.umeng.sdk:push-huawei:1.0.0'
    

通知弹窗点击事件设置

点击通知弹窗时,可自定义跳转的Activity,需要在清单文件中的Activity配置如下代码:

<intent-filter>
    <action android:name="${packageName}.NotifyClick" />
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

配置后点击可跳转对应的activity,如不配置,点击无效.

小米,华为系统通道推送,通知弹窗点击事件设置

小米对后台进程做了诸多限制。若使用一键清理,应用的channel进程被清除,将接收不到推送。为了增加推送的送达率,可选择接入小米托管弹窗功能。通知将由小米系统托管弹出,点击通知栏将跳转到指定的Activity。该Activity需继承自UmengNotifyClickActivity,同时实现父类的onMessage方法,对该方法的intent参数进一步解析即可,该方法异步调用,不阻塞主线程。示例如下:

public class MipushTestActivity extends UmengNotifyClickActivity {

    private static String TAG = MipushTestActivity.class.getName();

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_mipush);
    }

    @Override
    public void onMessage(Intent intent) {
        super.onMessage(intent);  //此方法必须调用,否则无法统计打开数
        String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
        Log.i(TAG, body);
    }
}

然后在AndroidManifest.xml中配置该Activity,并设置launchMode=”singleTask”和exported=”true”:

<activity
      android:name="com.umeng.message.example.MipushTestActivity"
      android:launchMode="singleTask"
      android:exported="true" />
ps : 若使用华为Push通道,则app的targetSdkVersion必须设置为25或25以下,设置为26及以上,会导致EMUI 8.0设备无法弹出通知。

Notification提示图标自定义

用户可通过如下命令自定通知图标,默认为我们提供的图标.

 Ntalker.getInstance().setNotifyIcon(R.drawable.icon);