> 文档中心 > 快速集成远程配置服务-HarmonyOS

快速集成远程配置服务-HarmonyOS

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项目级build.gradle文件。

在allprojects ->repositories里面配置maven仓地址。

在buildscript->repositories中配置maven仓地址。

在buildscript->dependencies中配置AppGallery Connect插件地址。

​buildscript {    repositories { maven {     url 'https://repo.huaweicloud.com/repository/maven/' } maven {     url 'https://developer.huawei.com/repo/' } 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 'https://repo.huaweicloud.com/repository/maven/' } maven {     url 'https://developer.huawei.com/repo/' } jcenter()    }}

d)添加编译依赖和集成SDK。

在“dependencies”中添加添加agconnect-core的编译依赖和remoteconfig SDK。

​dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])    testImplementation 'junit:junit:4.13'    ohosTestImplementation 'com.huawei.ohos.testkit: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.huawei.agconnect.remoteconfig为包名)。

​{  "permissions": [    "com.huawei.agconnect.core.DataAbilityShellProvider.PROVIDER"  ],  "name": "com.huawei.agconnect.core.provider.AGConnectInitializeAbility",  "type": "data",  "uri": "dataability://com.huawei.agconnect.remoteconfig.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目录下的.ohos\config目录下。

设置完签名信息后,点击OK进行保存,然后可以在工程下的build.gradle中查看签名的配置信息。

登录AGC,进入“用户与访问”-“证书管理”,点击新增证书,上传前面生成的.csr文件,类型选择调试证书。完成签名配置后即可点击安装应用到调试设备。

功能实现

布局设计

参考如下设置布局,可以在DevEco Studio工程中创建一个布局页面,参照下图进行UI设计,新增一个文本和一个用于获取远程配置参数的按钮。

布局代码如下:

设计远程配置参数

1、由于应用需要实现的功能是通过点击按钮替换欢迎语的文字语言、文字加粗状态,我们可以设计以下两个参数。

     GREETING_KEY:欢迎语的文本。

     SET_BOLD_KEY:是否加粗,“true”为加粗,“false”为不加粗。

2、应用启动时需要加载默认配置,建议您可以使用设置本地默认值的方式,在本地工程的“resources/base”目录中新建1个xml文件,在文件中设置各配置参数的默认值。 例如文件remote_config.xml。

开发远程配置功能

1、引入相关类。

​import com.huawei.agconnect.remoteconfig.AGConnectConfig;import com.huawei.agconnect.remoteconfig.ConfigValues;import com.huawei.agconnect.remoteconfig.ResourceTable;import com.huawei.hmf.tasks.OnFailureListener;import com.huawei.hmf.tasks.OnSuccessListener;import ohos.aafwk.ability.AbilitySlice;import ohos.aafwk.content.Intent;import ohos.agp.components.Button;import ohos.agp.components.Component;import ohos.agp.components.Text;import ohos.agp.text.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 = AGConnectConfig.getInstance();

5、将本地默认配置设置为当前应用配置。

​config.applyDefault(ResourceTable.Profile_remote_config);text.setText(config.getValueAsString(GREETING_KEY));Boolean isBold = config.getValueAsBoolean(SET_BOLD_KEY);if (isBold){    text.setFont(Font.DEFAULT_BOLD);}

6、当点击按钮时触发获取远程配置参数值到应用配置的fetchAndApply方法。

​button.setClickedListener(new Component.ClickedListener() {      @Override      public void onClick(Component component) {     fetchAndApply();      }});

fetchAndApply方法定义如下:

​private void fetchAndApply(){    config.fetch(0).addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(ConfigValues configValues) {     config.apply(configValues);     updateUI(); }    }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(Exception e) {     text.setText("fetch setting failed: " + e.getMessage()); }    });}

7、在updateUI方法中获取配置中的参数值并加载到页面元素。

​private void updateUI(){    String greeting = config.getValueAsString(GREETING_KEY);    Boolean isBold = config.getValueAsBoolean(SET_BOLD_KEY);    text.setText(greeting);    if (isBold){ text.setFont(Font.DEFAULT_BOLD);    }}

功能测试

完成上述配置以后,即可点击运行进行测试。点击“Get Online config”按钮,欢迎语的文字内容发生变化。

​  

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh​

毒蛇网