使用场景:
为应用内消息创建一条自定义触发事件,当用户登陆后,使用自定义的应用内消息为用户推荐优惠活动。
创建自定义事件
1. 登录AppGallery Connect,点击“我的项目”。
2. 在项目列表中点击您的项目,选择“华为分析>管理>事件管理”,创建一条自定义事件。
构建自定义消息
1. 登录AppGallery Connect,点击“我的项目”。
2. 在项目列表中点击您的项目,选择“增长>应用内消息>事件管理”,进入应用内消息页面,完成如下操作:
a. 启用应用内消息服务。
b. 添加应用内消息。
c. 实现AGConnectAppMessagingDisplay接口自定义一个消息显示类,将从远程配置获取的活动编号展示到自定义消息标题中,并通过自定义弹框中的按钮监听跳转至对应的活动界面。
public class CustomActivity implements AGConnectAppMessagingDisplay {
private static final String TAG = "CustomView";
MainActivity activity;
public CustomActivity(MainActivity activity) {
this.activity = activity;
}
@Override
public void displayMessage(@NonNull AppMessage appMessage, @NonNull AGConnectAppMessagingCallback callback) {
Log.d(TAG, appMessage.getId() + "");
showDialog(appMessage, callback);
}
//展示自定义消息弹窗
private void showDialog(@NonNull final AppMessage appMessage, @NonNull final AGConnectAppMessagingCallback callback) {
View view = LayoutInflater.from(activity).inflate(R.layout.activity_custom, null, false);
final AlertDialog dialog = new AlertDialog.Builder(activity).setView(view).create();
Button click = view.findViewById(R.id.click);
TextView id = view.findViewById(R.id.id);
id.setText("推荐活动: " + "优惠活动"+activity.eventNumber);
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callback.onMessageDismiss(appMessage, AGConnectAppMessagingCallback.DismissType.CLICK);
dialog.dismiss();
activity.redirect(activity.eventNumber);
}
});
dialog.show();
dialog.getWindow().setLayout((getScreenWidth(activity) / 4 * 3), LinearLayout.LayoutParams.WRAP_CONTENT);
callback.onMessageDisplay(appMessage);
}
public static int getScreenWidth(Context context) {
return context.getResources().getDisplayMetrics().widthPixels;
}
}
d. 调用AGConnectAppMessaging.addCustomView添加自定义显示类,添加自定义布局。
CustomActivity customActivity = new CustomActivity(MainActivity.this);
appMessaging.addCustomView(customActivity);
e. 在用户登录到主页面时添加自定义埋点,触发自定义消息的展示。
//打开SDK日志开关
HiAnalyticsTools.enableLog();
HiAnalyticsInstance instance = HiAnalytics.getInstance(this);
//自定义埋点,应用内消息触发事件
Bundle bundle = new Bundle();
bundle.putString("uid", uid);
bundle.putString("phoneNumber", phoneNumber);
instance.onEvent("ShowAppMessaging", bundle);
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
{{o.name}}
{{m.name}}