W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當前卡片框架提供了如下幾種按時間刷新卡片的方式:
- {
- "forms": [
- {
- "name": "widget",
- "description": "This is a service widget.",
- "src": "./ets/widget/pages/WidgetCard.ets",
- "uiSyntax": "arkts",
- "window": {
- "designWidth": 720,
- "autoDesignWidth": true
- },
- "colorMode": "auto",
- "isDefault": true,
- "updateEnabled": true, // 使能刷新功能
- "scheduledUpdateTime": "10:30",
- "updateDuration": 2, // 設置卡片定時刷新的更新周期(單位為30分鐘,取值為自然數(shù))
- "defaultDimension": "2*2",
- "supportDimensions": ["2*2"]
- }
- ]
- }
當同時配置了定時刷新(updateDuration)和定點刷新(scheduledUpdateTime)時,定時刷新的優(yōu)先級更高。如果想要配置定點刷新,則需要將updateDuration配置為0。
- {
- "forms": [
- {
- "name": "widget",
- "description": "This is a service widget.",
- "src": "./ets/widget/pages/WidgetCard.ets",
- "uiSyntax": "arkts",
- "window": {
- "designWidth": 720,
- "autoDesignWidth": true
- },
- "colorMode": "auto",
- "isDefault": true,
- "updateEnabled": true, // 使能刷新功能
- "scheduledUpdateTime": "10:30", // 設置卡片的定點刷新的時刻
- "updateDuration": 0,
- "defaultDimension": "2*2",
- "supportDimensions": ["2*2"]
- }
- ]
- }
- import formProvider from '@ohos.app.form.formProvider';
- let formId = '123456789'; // 實際業(yè)務場景需要使用正確的formId
- try {
- // 設置過5分鐘后更新卡片內(nèi)容
- formProvider.setFormNextRefreshTime(formId, 5, (err, data) => {
- if (err) {
- console.error(`Failed to setFormNextRefreshTime. Code: ${err.code}, message: ${err.message}`);
- return;
- } else {
- console.info('Succeeded in setFormNextRefreshTimeing.');
- }
- });
- } catch (err) {
- console.error(`Failed to setFormNextRefreshTime. Code: ${err.code}, message: ${err.message}`);
- }
在觸發(fā)定時、定點或主動刷新后,系統(tǒng)會調(diào)用FormExtensionAbility的onUpdateForm生命周期回調(diào),在回調(diào)中,可以使用updateForm進行提供方刷新卡片。onUpdateForm生命周期回調(diào)參考通過FormExtensionAbility刷新卡片內(nèi)容。
1. 定時刷新有配額限制,每張卡片每天最多通過定時方式觸發(fā)刷新50次,定時刷新包含卡片配置項updateDuration和調(diào)用setFormNextRefreshTime兩種,當達到50次配額后,無法通過定時方式再次觸發(fā)刷新,刷新次數(shù)會在每天的0點重置。
2. 當前定時刷新使用同一個計時器進行計時,因此卡片定時刷新的第一次刷新會有最多30分鐘的偏差。比如第一張卡片A(每隔半小時刷新一次)在3點20分添加成功,定時器啟動并每隔半小時觸發(fā)一次事件,第二張卡片B(每隔半小時刷新一次)在3點40分添加成功,在3點50分定時器事件觸發(fā)時,卡片A觸發(fā)定時刷新,卡片B會在下次事件(4點20分)中才會觸發(fā)。
3. 定時刷新和定點刷新僅在屏幕亮屏情況下才會觸發(fā),在滅屏場景下僅會將記錄刷新動作,待亮屏時統(tǒng)一進行刷新。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: