HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看

HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看 根据查看文档感觉有几点看不懂的地方:

  1. 有地方报错,好像是文档中有错误的。根据文档中copy布局文件根据文档说明创建FormAbility文件,然后自动在slice中生成一个FormAbilitySlice,但是不知道为什么在这个FormAbility中使用的FormSlice

我感觉是没有使用默认的FormAbilitySlice,然后我就把它改成FormAbilitySlice.

  1. 然后在文档的第三步中,在它的FormSlice中使用一个ShapeElement.RECTANGLE,但是这个类中并没有这个枚举值,然后我就把它删掉了

还有这个代码assembleText(FormAbility.getClickTimes()),在FormAbility中并没有getClickTimes的get方法,不知这个调用的是那个,于是自己实现了这个方法 还有就是assembleText这个方法也没有啊,最后我就把它去掉了。

  1. 然后继续按照文档往下走,配置配置文件,但是发现自动补全代码中意思感觉和示例中差不多,但是并没有示例中那样写

示例代码:

自动补全的代码:

  1. 然后到了表单使用那一步,感觉提示的是写在FormAbilitySlice中,但是写进去发现好多字段都没有

还有接下来的俩个方法是否是写在了FormAbilitySlice中也不确定

希望有写成功的小伙伴给指正一下。


更多关于HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

卡片相关开发请参照以下文档

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-overview-0000001062607955

另外,你的文档是哪里的,给个地址,我们一起看看你的问题

更多关于HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


老哥,这是弄服务卡片么,要把相关的逻辑放到新的ability中么.

protected ProviderFormInfo onCreateForm(Intent intent)

总觉的这个方法是js 的.

java的服务卡片是这个方法初始化么.

protected AbilityForm onCreateForm()

这玩意是不是先有的js的服务卡片啊, java的目前就是凑活搞上去的…

亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒

在HarmonyOS鸿蒙Next中,AbilityForm是用于创建和管理卡片式UI的组件。以下是一个简单的AbilityForm实现示例代码:

import Ability from '@ohos.application.Ability';
import AbilityForm from '@ohos.application.AbilityForm';

export default class MainAbility extends Ability {
  private formId: string = '';

  onStart() {
    console.info('MainAbility onStart');
    this.createForm();
  }

  async createForm() {
    try {
      const formInfo = {
        name: 'MainForm',
        bundleName: 'com.example.myapplication',
        abilityName: 'MainAbility',
        moduleName: 'entry',
        dimension: 1,
        jsComponentName: 'MainForm',
        formConfigAbility: '',
        updateEnabled: true,
        scheduledUpdateTime: '10:30',
        updateDuration: 1,
        defaultFlag: true,
        supportDimensions: [1],
        landscapeLayouts: [],
        portraitLayouts: [],
        formVisibleNotify: true,
        metaData: {},
        description: 'This is a form',
        colorMode: 0,
        supportIcon: true,
        icon: 'icon.png',
        label: 'My Form'
      };

      this.formId = await AbilityForm.createForm(this.context, formInfo);
      console.info('Form created with ID:', this.formId);
    } catch (error) {
      console.error('Failed to create form:', error);
    }
  }

  onDestroy() {
    console.info('MainAbility onDestroy');
    if (this.formId) {
      AbilityForm.deleteForm(this.formId).then(() => {
        console.info('Form deleted:', this.formId);
      }).catch((error) => {
        console.error('Failed to delete form:', error);
      });
    }
  }
}

这段代码展示了如何在HarmonyOS中创建一个简单的AbilityForm。首先,在onStart生命周期方法中调用createForm方法来创建表单。createForm方法中定义了表单的基本信息,并通过AbilityForm.createForm方法创建表单。表单创建成功后,返回的formId可以用于后续的表单管理操作。在onDestroy生命周期方法中,使用AbilityForm.deleteForm方法删除表单。

在HarmonyOS鸿蒙Next中,AbilityForm是用于实现卡片功能的核心类。以下是一个简单的AbilityForm实现示例,展示如何创建一个基本的卡片:

public class MyAbilityForm extends AbilityForm {
    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        // 初始化卡片布局
        setUIContent(ResourceTable.Layout_form_layout);
    }

    @Override
    protected void onActive() {
        super.onActive();
        // 卡片激活时的逻辑
    }

    @Override
    protected void onInactive() {
        super.onInactive();
        // 卡片非激活时的逻辑
    }
}

form_layout.xml中定义卡片的UI布局。确保在config.json中正确配置AbilityForm的入口。

回到顶部