HarmonyOS 鸿蒙Next服务卡片无法刷新数据
HarmonyOS 鸿蒙Next服务卡片无法刷新数据
服务卡片配置每隔半小时刷新,但是没有刷新方法并没有调到,也没有日志,没有执行刷新逻辑 注册卡片代码:
{
"forms": [
{
"name":
"ICDeparture", "displayName":
"$string:ICDeparture_display_name", "description":
"$string:ICDeparture_desc", "src":
"./ets/widget/icdeparture/pages/ICDepartureCard.ets", "uiSyntax":
"arkts", "window":
{
"designWidth":
720, "autoDesignWidth":
true
}
,
"colorMode":
"auto", "isDynamic":
true, "isDefault":
true, "updateEnabled":
true, "scheduledUpdateTime":
"10:30", "updateDuration":
1, "defaultDimension":
"2*2", "supportDimensions": [
"2*2" ]
}
]
}
onUpdateForm(formId:
string, wantParams ? : Record<
string, Object >
)
{
console.error("onUpdateForm " + formId)
let paramsGet = new Map<string, string>()
let data: Array<CardListItemData> | undefined = undefined
httpRequestGet<Array<CardListItemData>>('/intelli/device/ic/list', paramsGet).then((res) => {
if (res.data !== null || res.data !== undefined) {
data = res.data
if (data && data.length > 0) {
} else {
data = [{
strategy_name: "刷新的数据 指数派滚雪球",
departure_time_desc: "刷新的数据 指数派滚雪球",
departure_no: "2-241235234",
departure_invest_advice: { code: 0, desc: "增加投入" },
special_metric: { value: "5.8星" },
market_sentiment: { sentiment_special_type: "3", sentiment_value: 3 }
}];
}
let obj2: formBindingData.FormBindingData = formBindingData.createFormBindingData(data);
formProvider.updateForm(formId, obj2).then(() => {
console.error(`FormExtensionAbility context updateForm`);
}).catch((error: BusinessError) => {
console.error(`FormExtensionAbility context updateForm failed, data: ${error}`);
});
}
})
}
更多关于HarmonyOS 鸿蒙Next服务卡片无法刷新数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
关于卡片定时刷新和定点刷新
参考链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-ui-widget-update-by-time-V5
参考如下demo:
// xxx.ets
import { formBindingData } from '@kit.FormKit'
import { BusinessError } from '@kit.BasicServicesKit'
import formProvider from '@ohos.application.formProvider';
class cardListParameter {
itemCount: number = 0
cardListData?: cardListData[]
}
class codeDesc {
code: number = 0
desc: string = ''
}
class value {
value: string = ''
}
class sentiment_value {
sentiment_value: number = 0
sentiment_special_type: null = null
}
class cardListData {
strategy_name?: string
departure_time_desc: string = ''
departure_no: string = ''
departure_invest_advice?: codeDesc[]
special_metric?: value[]
market_sentiment?: sentiment_value[]
}
@Entry
@Component
struct AttrAnimationExample {
@State widthSize: number = 250
@State heightSize: number = 100
@State rotateAngle: number = 0
@State flag: boolean = true
@State formData: cardListParameter = {
itemCount: 1,
cardListData: [{
strategy_name: "这是拉取的数据",
departure_time_desc: "刚刚发车",
departure_no: "240923550888880000000005",
departure_invest_advice: [{ code: 2, desc: "增加投入" }],
special_metric: [{ value: "5.8星" }],
market_sentiment: [{ sentiment_value: 5, sentiment_special_type: null }]
}]
}
aboutToAppear(): void {
let formId: string = '12400633174999288';
let obj2: formBindingData.FormBindingData = formBindingData.createFormBindingData(this.formData);
formProvider.updateForm(formId, obj2)
.then(() => {
console.log('刷新卡片数据');
})
.catch((error: BusinessError) => {
console.error(`FormExtensionAbility context updateForm failed, data: ${error}`);
});
}
build() {
Column() {
Image($r("app.media.bs_ai_right_switch"))
.width(130)
.height(240)
.onClick(() => {
this.rotateAngle = 30
})
}.width('100%').margin({ top: 20 })
}
}
更多关于HarmonyOS 鸿蒙Next服务卡片无法刷新数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next服务卡片无法刷新数据的问题,通常与卡片的数据源或服务后台有关。以下是几个可能的原因及排查方法:
-
网络问题:检查设备是否连接到网络,且网络状态稳定。网络不稳定可能导致数据无法及时更新。
-
服务后台异常:服务卡片的数据通常来源于某个应用或服务,如果该服务后台出现异常或维护状态,可能导致卡片数据无法刷新。
-
卡片配置问题:检查卡片的配置设置,确保已正确设置数据刷新频率和更新策略。
-
系统缓存:尝试清除系统缓存或重启设备,看是否能解决问题。有时系统缓存可能导致数据更新延迟。
-
卡片版本:检查是否有可用的卡片更新,有时更新卡片可以解决数据刷新问题。
-
权限问题:确保应用已授予必要的权限,包括网络访问权限和数据访问权限,以便卡片能够正常获取数据。
如果以上方法均未能解决问题,可能是系统或应用层面的更深层次问题。此时,建议直接联系官方客服进行进一步排查和解决。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。