HarmonyOS应用集成AGC应用内消息与远程配置

Posted 狼哥Army

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HarmonyOS应用集成AGC应用内消息与远程配置相关的知识,希望对你有一定的参考价值。

1. 效果图直接先上:

HarmonyOS应用集成AGC应用内消息与远程配置_AppLinking

2. 项目结构图

HarmonyOS应用集成AGC应用内消息与远程配置_远程配置_02

3. 项目开发介绍

此项目主要学习如何在HarmonyOS集成应用内消息, 远程配置, AppLinking链接;

1. 使用远程配置,在HUAWEI AppGallery Connect控制台完成配置项的设置,并在HarmonyOS内应用,该配置的作用可以为修改Banner图片.

HarmonyOS应用集成AGC应用内消息与远程配置_HarmonyOS_03

HarmonyOS应用集成AGC应用内消息与远程配置_应用内消息_04

2. 使用应用内消息,在HUAWEI AppGallery Connect控制台添加一个应用内消息,并在HarmonyOS应用内调测展示,消息主题为“5.20告白消息”

HarmonyOS应用集成AGC应用内消息与远程配置_AGC_05

3. 创建应用内消息时结合云托管实现消息图片的上传(注意图片尺寸是3:2),配置消息跳转链接时使用Applinking跳转

HarmonyOS应用集成AGC应用内消息与远程配置_AGC_06

4. 项目级build.gradl配置

在buildscript -> dependencies 节点下添加

classpath com.huawei.agconnect:agcp-harmony:1.3.0.300

5. 应用级build.gradl配置

第一行添加插件: apply plugin: com.huawei.agconnect 如:

apply plugin: com.huawei.ohos.hap
apply plugin: com.huawei.agconnect
apply plugin: com.huawei.ohos.decctest

6. 布局页面, 就添加一个图片组件, 用来显示Banner

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:
ohos:
ohos:alignment="top"
ohos:orientation="vertical">
<Image
ohos:id="$+id:imgHeader"
ohos:
ohos:
ohos:image_src="$media:one" />
</DirectionalLayout>

7. 在MainAbility的onStart()方法中初始化AGC基础SDK和打开SDK日志开关

public class MainAbility extends Ability 
@Override
public void onStart(Intent intent)
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());

// 在应用的MainAbility的onStart()方法中初始化AGC基础SDK
AGConnectInstance.initialize(getAbilityPackage());

// 打开SDK日志开关
HiAnalyticsTools.enableLog();
HiAnalyticsInstance instance = HiAnalytics.getInstance(this);

8. 在MainAbilitySlice集成应用内消息和远程配置监听

public class MainAbilitySlice extends AbilitySlice 
// 单位为秒, 多少秒调用远程配置更新
long fetchInterval = 0;
private String flag = "purple";
private AGConnectAppMessaging appMessaging;

@Override
protected void onStart(Intent intent)
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);

// 调用AGCInstanceID获取AAID
getAAID();

//配置应用内消息
configMessage();

// 读取远程配置
remoteConfig();


/**
* 调用AGCInstanceID获取AAID
*/
private void getAAID()
// 手机调试, 获取到手机aaid, 然后在AGC上添加
String aaid = AGCInstanceID.getInstance().getId();
System.out.println("xx: " + aaid);


/**
* 配置应用内消息
*/
private void configMessage()
appMessaging = AGConnectAppMessaging.getInstance();
// 设置是否允许同步AGC服务端数据
appMessaging.setFetchMessageEnable(true);
// 强制请求AGC服务端消息数据
appMessaging.setForceFetch("AppOnForeground");
// 设置是否允许展示消息
appMessaging.setDisplayEnable(true);
// 消息展示监听器
appMessaging.addOnDisplayListener(new AGConnectAppMessagingOnDisplayListener()
public void onMessageDisplay(AppMessage param1AppMessage)
System.out.println("xx: Display Message Success!");

);
// 消息点击监听器
appMessaging.addOnClickListener(new AGConnectAppMessagingOnClickListener()
public void onMessageClick(AppMessage param1AppMessage, Action action)
String urlStr = action.getActionUrl();
System.out.println("xx: getActionUrl: card url "+urlStr);

Uri uri = Uri.parse(urlStr);
System.out.println("xx: onMessageClick: message clicked");


);


/**
* 读取远程配置
*/
private void remoteConfig()
AGConnectConfig aGConnectConfig = AGConnectConfig.getInstance();
aGConnectConfig.fetch(fetchInterval)
.addOnSuccessListener(configValues ->
System.out.println("xx: Fetch Success");
aGConnectConfig.apply(configValues);
// 获取远程配置条件管理
String value = aGConnectConfig.getValueAsString("theme_color");
System.out.println("xx: Theme Color " + value);

// 获取图片组件
Image img = findComponentById(ResourceTable.Id_imgHeader);
if (value.equals(flag))
img.setPixelMap(ResourceTable.Media_two);
else
img.setPixelMap(ResourceTable.Media_one);


).addOnFailureListener(e ->
System.out.println("xx: Fetch Fail");
);


以上是关于HarmonyOS应用集成AGC应用内消息与远程配置的主要内容,如果未能解决你的问题,请参考以下文章

Android | 零代码快速集成AGC崩溃服务

Android | 零代码快速集成AGC崩溃服务

OpenHarmony应用集成AGC认证服务实现登录

iOS | 零代码快速集成AGC崩溃服务

将华为地图套件集成到HarmonyOs可穿戴设备应用中

HarmonyOS/OpenHarmony应用开发-HUAWEI DevEco Studio 3.1API9集成SDK