1# Updating Widget Content by Widget Host (for System Applications Only) 2 3 4Widgets that are updated periodically are subject to the scheduled time or interval settings. To offer more flexible updates, the widget host can provide a button to proactively trigger a widget update. Specifically, the widget host calls the [requestForm](../reference/apis/js-apis-app-form-formHost.md#requestform) API to request a widget update. The system then calls the [onUpdateForm](../reference/apis/js-apis-app-form-formExtensionAbility.md#onupdateform) lifecycle callback in the FormExtensionAbility of the widget provider. In the callback, the [updateForm](../reference/apis/js-apis-app-form-formProvider.md#updateform) API can be used to update the widget content. For details about the **onUpdateForm** lifecycle callback, see [Updating Widget Content Through FormExtensionAbility](arkts-ui-widget-event-formextensionability.md). 5 6```ts 7import formHost from '@ohos.app.form.formHost'; 8 9@Entry() 10@Component 11struct WidgetCard { 12 formId = ...; // Widget ID 13 14 build() { 15 Button (`Update Widget`) 16 .type(ButtonType.Capsule) 17 .width('50%') 18 .height(50) 19 .onClick(() => { 20 console.info('FormAbility update form click'); 21 // formId is the ID of the widget to be updated. 22 formHost.requestForm(this.formId.toString()).then(() => { 23 console.info('Succeeded in requestForming.'); 24 }); 25 }) 26 27 ... 28 } 29} 30``` 31