AppGallery Connect远程配置服务提供云端服务、管理台和客户端SDK,应用集成客户端SDK后可以周期性的获取远程配置管理台配置的参数值,实现客户端应用的行为和UI的修改。
通过HarmonyOS SDK插件集成远程配置服务,将建立一个能够使用AppGallery Connect远程配置服务控制文本配置的应用,您的应用程序将包含:文本能够根据远程配置参数改变文字语言、文字加粗状态、根据当前系统的语言自动展示中文欢迎语或英文欢迎语。
1、安装DevEco Studio开发工具,并熟悉HarmonyOS应用的开发流程。
2、AGC创建工程并开通服务。
a)在AGC创建HarmonyOS应用并开通远程配置服务。
选择“增长 > 远程配置”,点击“立即使用”。
b)选择“配置条件管理”页签,点击“添加配置条件”, 在“配置条件名称”栏输入条件名称,例如“Diff_Lang_CN”,“添加过滤条件”选择“语言 > 中文简体”,完成后点击“保存配置条件”, 使用相同的方法添加语言为英语的条件名称,例如“Diff_Lang_EN”,“过滤条件”选择“语言”,语言选择“英语(en)”。两种条件都配置完成后,点击“发布”。
c)选择“配置项管理”页签,点击“添加配置项”, 在“配置项名称”栏根据提前设计的“GREETING_KEY”参数名填写“配置项名称”。在“默认值”栏填写一个默认值,例如“Greeting, CodeLaber”,在“添加条件下的配置项值”中分别选择语言条件“Diff_Lang_CN”和 “Diff_Lang_EN”。配置分别满足“Diff_Lang_CN”和“Diff_Lang_EN”条件时GREETING_KEY参数的值,分别为中文和英文的文本。配置完成后,点击 “保存配置项”;
点击“添加配置项”添加SET_BOLD_KEY参数。默认值为“false”,中文条件值设成“true”,英文条件值设成“false”,表示设备语言为中文时字体加粗,设备语言为英文时字体不加粗。配置完成后,点击 “保存配置项”;
配置项添加完成后点击“发布”。
3、DevEco Studio中创建HarmonyOS工程
a)打开IDE工具,选择File-New-New project,选择Java语言编译模板后,点击Next进入创建工程配置界面。
注意选择应用(Application),包名和AGC创建的应用包名相同。
b)将agconnect-services.json文件拷贝到项目的entry模块的目录下。
c)配置Maven仓地址和AGC插件地址。
打开DevEco Studio项目级adle文件。
在allprojects ->repositories里面配置maven仓地址。
在buildscript->repositories中配置maven仓地址。
在buildscript->dependencies中配置AppGallery Connect插件地址。
buildscript {repositories {maven {url '/'}maven {url '/'}jcenter()}dependencies {classpath 'com.huawei.ohos:hap:2.4.4.2'classpath 'com.huawei.ohos:decctest:1.2.4.0'classpath 'com.huawei.agconnect:agcp-harmony:1.2.0.200'}
}allprojects {repositories {maven {url '/'}maven {url '/'}jcenter()}
}
d)添加编译依赖和集成SDK。
在“dependencies”中添加添加agconnect-core的编译依赖和remoteconfig SDK。
dependencies {implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])testImplementation 'junit:junit:4.13'ohosTestImplementation 'com.stkit:runner:1.0.0.100'implementation "com.huawei.agconnect:agconnect-remoteconfig-harmony:1.2.0.300"
}
e)entry (hap)模块添加配置信息
entry模块的config.json文件的module/abilities中,加入如下配置,注意包名的替换(com.config为包名)。
{"permissions": ["com.DataAbilityShellProvider.PROVIDER"],"name": "com.provider.AGConnectInitializeAbility","type": "data","uri": "dataability://com.config.AGConnectInitializeAbility"
}
f)同步工程配置
4、配置签名信息
Harmony应用安装到真机进行测试,需要配置签名信息,有手动签名和自动签名两种方式,具体可以参见:配置签名信息。建议优先使用自动签名方式,如自动签名失败,可以选择手动签名方式。
这里使用自动签名方式:
a)连接真机设备,确保DevEco Studio与真机设备已连接,真机连接成功后如下图所示
b)进入File > Project Structure > Project > Signing Configs界面,点击“Sign In”按钮进行登录,选择Debug,勾选Automatically generate signing,点击try again即可自动进行签名。自动生成签名所需的密钥(.p12)、数字证书(.cer)和Profile文件(.p7b)会存放到用户user目录下的.ohosconfig目录下。
设置完签名信息后,点击OK进行保存,然后可以在工程下的adle中查看签名的配置信息。
登录AGC,进入“用户与访问”-“证书管理”,点击新增证书,上传前面生成的.csr文件,类型选择调试证书。完成签名配置后即可点击安装应用到调试设备。
参考如下设置布局,可以在DevEco Studio工程中创建一个布局页面,参照下图进行UI设计,新增一个文本和一个用于获取远程配置参数的按钮。
布局代码如下:
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutxmlns:ohos=""ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><Textohos:id="$+id:greeting"ohos:text="Greeting CodeLaber"ohos:layout_alignment="horizontal_center"ohos:height="match_content"ohos:width="match_content"ohos:top_margin="100"ohos:left_margin="60"ohos:right_margin="60"ohos:multiple_lines="true"ohos:text_color="#ff888888"ohos:text_size="100"/><Buttonohos:id="$+id:fetch_button"ohos:text="Get Online config"ohos:background_element="$graphic:background_ability_main"ohos:height="match_content"ohos:width="match_content"ohos:top_margin="20"ohos:left_margin="60"ohos:right_margin="60"ohos:multiple_lines="true"ohos:text_size="100"/>
</DirectionalLayout>
1、由于应用需要实现的功能是通过点击按钮替换欢迎语的文字语言、文字加粗状态,我们可以设计以下两个参数。
GREETING_KEY:欢迎语的文本。
SET_BOLD_KEY:是否加粗,“true”为加粗,“false”为不加粗。
2、应用启动时需要加载默认配置,建议您可以使用设置本地默认值的方式,在本地工程的“resources/base”目录中新建1个xml文件,在文件中设置各配置参数的默认值。 例如文件l。
1、引入相关类。
import com.config.AGConnectConfig;
import com.config.ConfigValues;
import com.config.ResourceTable;
import com.huawei.hmf.tasks.OnFailureListener;
import com.huawei.hmf.tasks.OnSuccessListener;
import ohos.aafwk.ability.AbilitySlice;
import t.Intent;
import ohos.agpponents.Button;
import ohos.agpponents.Component;
import ohos.agpponents.Text;
import Font;
2、声明所需要的参数,包括配置项参数、远程配置服务实例等。
private static final String GREETING_KEY = "GREETING_KEY";
private static final String SET_BOLD_KEY = "SET_BOLD_KEY";
private AGConnectConfig config;
private Text text;
3、在onStart方法定义相关界面元素。
super.setUIContent(ResourceTable.Layout_ability_main);
text = (Text) findComponentById(ResourceTable.Id_greeting);
Button button = (Button) findComponentById(ResourceTable.Id_fetch_button);
4、初始化远程配置对象实例。
config = Instance();
5、将本地默认配置设置为当前应用配置。
config.applyDefault(ResourceTable.Profile_remote_config);
text.ValueAsString(GREETING_KEY));
Boolean isBold = ValueAsBoolean(SET_BOLD_KEY);
if (isBold){text.setFont(Font.DEFAULT_BOLD);
}
6、当点击按钮时触发获取远程配置参数值到应用配置的fetchAndApply方法。
button.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {fetchAndApply();}
});
fetchAndApply方法定义如下:
private void fetchAndApply(){config.fetch(0).addOnSuccessListener(new OnSuccessListener<ConfigValues>() {@Overridepublic void onSuccess(ConfigValues configValues) {config.apply(configValues);updateUI();}}).addOnFailureListener(new OnFailureListener() {@Overridepublic void onFailure(Exception e) {text.setText("fetch setting failed: " + e.getMessage());}});
}
7、在updateUI方法中获取配置中的参数值并加载到页面元素。
private void updateUI(){String greeting = ValueAsString(GREETING_KEY);Boolean isBold = ValueAsBoolean(SET_BOLD_KEY);text.setText(greeting);if (isBold){text.setFont(Font.DEFAULT_BOLD);}
}
完成上述配置以后,即可点击运行进行测试。点击“Get Online config”按钮,欢迎语的文字内容发生变化。
欲了解更多更全技术文章,欢迎访问/?ha_source=zzh
本文发布于:2024-02-02 18:10:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170686927345536.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |