HarmonyOS应用集成AGC应用内消息与远程配置
Posted 狼哥Army
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HarmonyOS应用集成AGC应用内消息与远程配置相关的知识,希望对你有一定的参考价值。
1. 效果图直接先上:
2. 项目结构图
3. 项目开发介绍
此项目主要学习如何在HarmonyOS集成应用内消息, 远程配置, AppLinking链接;
1. 使用远程配置,在HUAWEI AppGallery Connect控制台完成配置项的设置,并在HarmonyOS内应用,该配置的作用可以为修改Banner图片.
2. 使用应用内消息,在HUAWEI AppGallery Connect控制台添加一个应用内消息,并在HarmonyOS应用内调测展示,消息主题为“5.20告白消息”
3. 创建应用内消息时结合云托管实现消息图片的上传(注意图片尺寸是3:2),配置消息跳转链接时使用Applinking跳转
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应用内消息与远程配置的主要内容,如果未能解决你的问题,请参考以下文章