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