App Messaging SDK负责消息的拉取和展示。当您在AGC后台创建了消息、并且集成了App Messaging SDK,当达到消息展示的触发条件后,App Messaging SDK会自动以默认的消息展示布局在应用中展示消息。您可以不需要编写任何代码,就可以拥有展示消息的能力。如果您需要对展示的消息或用户对消息的操作进行一些别的特殊配置,您可以通过App Messaging SDK提供的API完成。
应用内消息的展示条件
App Messaging SDK展示消息的条件包括以下几点:
1. App必须在前台运行。
2. App触发消息展示的事件:用户在App的操作触发消息预设的事件后,App Messaging SDK会去同步AGC服务端或本地缓存的消息数据,获取到消息后,判断消息是否需要显示。
App Messaging SDK 支持数据拉取开关的设置,方便您随时开启/停用从AGC服务端数据拉取功能(默认为开启)。
a. 调用AGConnectAppMessaging.getInstance初始化AGConnectAppMessaging实例。
b. 调用AGConnectAppMessaging.setFetchMessageEnable设置是否同步AGC服务端数据的开关。
Java:
AGConnectAppMessaging.getInstance().setFetchMessageEnable(true);
Kotlin:
AGConnectAppMessaging.getInstance().setFetchMessageEnable(true);
说明:
App Messaging SDK并不是每次触发事件都会去AGC服务端请求消息,而是在一定的时间内只请求一次(通常为App启动时),然后把所有的消息缓存到本地,在过期时间之内事件触发时只会从本地读取消息。
在消息数据过期时间内,如果在AGC创建了新的消息,由于App Messaging SDK不会再次到AGC请求数据,新创建的消息将不会被获取。
3. AGC上创建了应用内消息,且消息处于发布状态,消息需要满足以下条件:
消息的开始时间和结束时间满足要求:当前时间(手机时间)需要大于消息的开始时间且小于结束时间。
消息的展示频率满足要求:消息没有被展示过,展示的次数或者频率没有超过限制。
消息的触发事件满足要求:消息的触发事件列表中需要包含此次App的触发事件。
App Messaging SDK 支持消息展示开关的设置,方便您随时开启/停用消息展示功能(默认为开启)。
a. 调用AGConnectAppMessaging.getInstance初始化AGConnectAppMessaging实例。
b. 调用AGConnectAppMessaging.setDisplayEnable设置是否允许展示消息的开关。
Java:
//消息展示设置成false后,App Messaging SDK将不再展示任何消息
AGConnectAppMessaging appMessaging = AGConnectAppMessaging.getInstance();
appMessaging.setDisplayEnable(false);
Kotlin:
//消息展示设置成false后,App Messaging SDK将不再展示任何消息
var appMessaging: AGConnectAppMessaging? = AGConnectAppMessaging.getInstance();
appMessaging?.setDisplayEnable(false);
当用户与消息交互时进行响应
通过App Messaging SDK您可以进一步定制应用内消息的行为,在用户与消息交互时进行响应,App Messaging SDK支持对消息的展示、点击和消失事件的监听。实现的基本步骤如下:
1. 调用AGConnectAppMessaging.getInstance初始化AGConnectAppMessaging实例。
Java:
AGConnectAppMessaging appMessaging = AGConnectAppMessaging.getInstance();
Kotlin:
var appMessaging: AGConnectAppMessaging? = AGConnectAppMessaging.getInstance();
2. 创建监听器。
您可以通过继承App Messaging SDK的AGConnectAppMessagingOnDisplayListener(消息展示监听器)、AGConnectAppMessagingOnClickListener(消息点击监听器)、AGConnectAppMessagingOnDismissListener(消息消失监听器)来创建事件的监听器。
例如,创建一个点击事件的监听器,示例代码如下:
Java:
public class ClickListener implements AGConnectAppMessagingOnClickListener {
@Override
public void onMessageClick(AppMessage appMessage) {
// 获取到点击消息的内容
}
}
Kotlin:
class ClickListener : AGConnectAppMessagingOnClickListener {
override fun onMessageClick(appmessage: AppMessage?) {
// 获取到点击消息的内容
}
}
3. 注册监听器。
您可以通过AGConnectAppMessaging的addOnClickListener、addOnDismissListener和addOnDisplayListener来注册监听器。
Java:
ClickListener listener = new ClickListener();
appMessaging.addOnClickListener(listener);
Kotlin:
val clickListener = ClickListener();
appMessaging?.addOnClickListener(clickListener)
设置自定义的布局
App Messaging服务提供三种消息样式:弹框消息、图片消息和Banner消息,App Messaging SDK提供消息的默认展示布局。您可以自己实现消息的展示样式,从而使得消息的展示样式更加适合App的相关主题。
1. 通过继承AGConnectAppMessagingDisplay的方式自定义一个消息显示类。
Java:
public class CustomDisplayView implements AGConnectAppMessagingDisplay {
@Override
public void displayMessage(@NonNull AppMessage appMessage,
@NonNull AGConnectAppMessagingCallback callback) {
}
}
Kotlin:
class CustomDisplayView : AGConnectAppMessagingDisplay {
override fun displayMessage(p0: AppMessage, p1: AGConnectAppMessagingCallback) {
}
}
displayMessage方法有两个对象:AppMessage和AGConnectAppMessagingCallback。
AppMessage是消息的内容。
AGConnectAppMessagingCallback是消息交互的回调对象,您应该在合适的时机回调该对象的方法。
- 在消息展示时回调onMessageDisplay,这一步很重要,如果该方法一直不回调,则App Messaging SDK无法获取该条消息是否被显示,导致消息会被重复下发。
- 在消息点击时回调onMessageClick。
- 在消息消失时回调onMessageDismiss。
2. 调用AGConnectAppMessaging.addCustomView添加自定义显示类。
Java:
CustomDisplayView view = new CustomDisplayView();
AGConnectAppMessaging.getInstance().addCustomView(view);
Kotlin:
var view = CustomDisplayView()
AGConnectAppMessaging.getInstance().addCustomView(view);
当然,如果您需要恢复消息的默认布局,可以调用AGConnectAppMessaging.removeCustomView移除自定义布局。
Java:
AGConnectAppMessaging.getInstance().removeCustomView();
Kotlin:
AGConnectAppMessaging.getInstance().removeCustomView();
本文内容来自于HUAWEI,本站不拥有所有权,不承担相关法律责任。文章内容系作者个人观点,不代表快出海对观点赞同或支持。如有侵权,请联系管理员(hj@kchuhai.com)删除!