同路文档网

首页 > 专题范文 > 公文范文 > / 正文

HarmonyOS原子化服务卡片immersive(JAVA)体验

2022-07-04 10:45:02 来源:网友投稿

下面是小编为大家整理的HarmonyOS原子化服务卡片immersive(JAVA)体验,供大家参考。

HarmonyOS原子化服务卡片immersive(JAVA)体验

 

 HarmonyOS 原子化服务卡片 immersive(JAVA)体验 一、技术相关 项目名称:

 immersive 项目语言:

 JAVA 体验模板:immersive 工具:deveco studio

 二、体验内容 天气预报样式 小卡片 中卡片 大卡片

 三、效果展示 视频 图片

 四、开发步骤 新建一个 java 的应用项目 然后构建完成项目后在 jltf_template 下 new->module

  选择的 Full screen(java)模板

 选择项目的 empty,新建 Service Widget

 选择 image and information 模板,点击下一步

  选择卡片类型,点击 finish

 登录你的账号然后启动模拟器即可实现效果

 五 、项目结构介绍

  该项目采用了项目模板 full srceen 和卡片模板 immersive,通过两种卡片结合更容易设计 六、 关键代码(MainAbility )

 与样式实现 public class MainAbility extends Ability {

 public static final int DEFAULT_DIMENSION_2X2 = 2;

  public static final int DIMENSION_1X2 = 1;

  public static final int DIMENSION_2X4 = 3;

  public static final int DIMENSION_4X4 = 4;

  private static final int INVALID_FORM_ID = -1;

  private static final HiLogLabel TAG = new HiLogLabel(HiLog.DEBUG, 0x0, MainAbility.class.getName());

  private String topWidgetSlice;

 @Override

  public void onStart(Intent intent) {

  super.onStart(intent);

  super.setMainRoute(MainAbilitySlice.class.getName());

  if (intentFromWidget(intent)) {

  topWidgetSlice = getRoutePageSlice(intent);

  if (topWidgetSlice != null) {

  setMainRoute(topWidgetSlice);

  }

  }

  stopAbility(intent);

  }

 @Override

  protected ProviderFormInfo onCreateForm(Intent intent) {

  HiLog.info(TAG, "onCreateForm");

  long formId = intent.getLongParam(AbilitySlice.PARAM_FORM_IDENTITY_KEY, INVALID_FORM_ID);

  String formName = intent.getStringParam(AbilitySlice.PARAM_FORM_NAME_KEY);

  int dimension = intent.getIntParam(AbilitySlice.PARAM_FORM_DIMENSION_KEY, DEFAULT_DIMENSION_2X2);

  HiLog.info(TAG, "onCreateForm: formId=" + formId + ",formName=" + formName);

  FormControllerManager formControllerManager = FormControllerManager.getInstance(this);

  FormController formController = formControllerManager.getController(formId);

  formController = (formController == null) ? formControllerManager.createFormController(formId,

  formName, dimension) : formController;

  if (formController == null) {

  HiLog.error(TAG, "Get null controller. formId: " + formId + ", formName: " + formName);

  return null;

  }

  return formController.bindFormData();

  }

 @Override

  protected void onUpdateForm(long formId) {

  HiLog.info(TAG, "onUpdateForm");

  super.onUpdateForm(formId);

  FormControllerManager formControllerManager = FormControllerManager.getInstance(this);

  FormController formController = formControllerManager.getController(formId);

  formController.updateFormData(formId);

  }

 @Override

  protected void onDeleteForm(long formId) {

  HiLog.info(TAG, "onDeleteForm: formId=" + formId);

  super.onDeleteForm(formId);

  FormControllerManager formControllerManager =

 FormControllerManager.getInstance(this);

  formControllerManager.deleteFormController(formId);

  }

 @Override

  protected void onTriggerFormEvent(long formId, String message) {

  HiLog.info(TAG, "onTriggerFormEvent: " + message);

  super.onTriggerFormEvent(formId, message);

  FormControllerManager formControllerManager = FormControllerManager.getInstance(this);

  FormController formController = formControllerManager.getController(formId);

  formController.onTriggerFormEvent(formId, message);

  }

 @Override

  public void onNewIntent(Intent intent) {

  if (intentFromWidget(intent)) { // Only response to it when starting from a service widget.

  String newWidgetSlice = getRoutePageSlice(intent);

  if (topWidgetSlice == null || !topWidgetSlice.equals(newWidgetSlice)) {

  topWidgetSlice = newWidgetSlice;

  restart();

  }

  }

  }

 private boolean intentFromWidget(Intent intent) {

  long formId = intent.getLongParam(AbilitySlice.PARAM_FORM_IDENTITY_KEY, INVALID_FORM_ID);

  return formId != INVALID_FORM_ID;

  }

 private String getRoutePageSlice(Intent intent) {

  long formId = intent.getLongParam(AbilitySlice.PARAM_FORM_IDENTITY_KEY, INVALID_FORM_ID);

  if (formId == INVALID_FORM_ID) {

  return null;

  }

  FormControllerManager formControllerManager = FormControllerManager.getInstance(this);

 FormController formController = formControllerManager.getController(formId);

  if (formController == null) {

  return null;

  }

  Class<? extends AbilitySlice> clazz = formController.getRoutePageSlice(intent);

  if (clazz == null) {

  return null;

  }

  return clazz.getName();

  } }

  七、完整代码地址:

 https://gitee.com/jltfcloudcn/jump_to/tree/master/immersive

推荐访问:HarmonyOS原子化服务卡片immersive(JAVA)体验 原子 卡片 体验

搜索