友盟推送
优质
小牛编辑
144浏览
2023-12-01
推送集成文档
前提
需要用户自己注册友盟账号,小米账号,华为账号,然后将注册的信息填入客服端的设置中,如下图:
初始化
- 必须在 Application 中进行SDK初始化,否则会造成推送失败.
Ntalker.getInstance().initSDK(this, NativeDemo.siteid);// 初始化SDK, 请放置在Application子类中
- 默认在 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);