diff --git a/entry/src/main/ets/view/CommunicationArea.ets b/entry/src/main/ets/view/CommunicationArea.ets index 72e838b6c78e5f525185a2b056168d5f9b4c3442..054d91e660658f658bac0f0c64489f9e62dffd3a 100644 --- a/entry/src/main/ets/view/CommunicationArea.ets +++ b/entry/src/main/ets/view/CommunicationArea.ets @@ -119,7 +119,8 @@ function GoodsBox() { @Component export default struct CommunicationArea { - @State messages: Message[] = new MessageViewModel().getMessages(); + UIContext = this.getUIContext() + @State messages: Message[] = new MessageViewModel(this.UIContext).getMessages(); private contentBuilders: Map void> = new Map(); aboutToAppear(): void { diff --git a/entry/src/main/ets/view/MessageItem.ets b/entry/src/main/ets/view/MessageItem.ets index 17c64b8911540c1d57af236a1c4ac3b92b32f682..7e6285c4b31054b11515d08f1441b20c0263db68 100644 --- a/entry/src/main/ets/view/MessageItem.ets +++ b/entry/src/main/ets/view/MessageItem.ets @@ -21,9 +21,11 @@ function EmptyBuilder() {} @Component export struct MessageItem { + UIContext = this.getUIContext(); + @Prop message: Message; @BuilderParam contentBuilder: () => void = EmptyBuilder; - private context: common.UIAbilityContext = this.getUIContext().getHostContext() as common.UIAbilityContext; + private context: common.UIAbilityContext = this.UIContext.getHostContext() as common.UIAbilityContext; build() { Row() { diff --git a/entry/src/main/ets/view/WarningBox.ets b/entry/src/main/ets/view/WarningBox.ets index c2a187d165438cc948304bc3f94e033d9ddf9403..f6e929f5c41e6a2ee19be87546afe5056b669110 100644 --- a/entry/src/main/ets/view/WarningBox.ets +++ b/entry/src/main/ets/view/WarningBox.ets @@ -18,7 +18,9 @@ import { pullUpSystemSetting } from '../viewmodel/MessageViewModel'; @Component export struct WarningBox { - private context: common.UIAbilityContext = this.getUIContext().getHostContext() as common.UIAbilityContext; + UIContext = this.getUIContext(); + + private context: common.UIAbilityContext = this.UIContext.getHostContext() as common.UIAbilityContext; build() { Row() { diff --git a/entry/src/main/ets/viewmodel/MessageViewModel.ets b/entry/src/main/ets/viewmodel/MessageViewModel.ets index d87d99d31776ea8bd185a7a3c8566285fa00908d..6f1245226fdb4c0ec27d3ef2e9ca7b0fb3659e36 100644 --- a/entry/src/main/ets/viewmodel/MessageViewModel.ets +++ b/entry/src/main/ets/viewmodel/MessageViewModel.ets @@ -17,13 +17,16 @@ import { bundleManager, common, OpenLinkOptions, Want } from '@kit.AbilityKit'; import { promptAction } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit'; +let getUIContext: UIContext + export class MessageViewModel { private messages: Message[] = []; - constructor() { + constructor(UIContext: UIContext) { this.messages.push(new Message('001', pullUpAppGallery)); this.messages.push(new Message('002', pullUpNavigationApp)); this.messages.push(new Message('003', pullUpThirdApp)); + getUIContext = UIContext } public getMessages(): Message[] { @@ -76,14 +79,12 @@ const pullUpThirdApp = (context: common.UIAbilityContext) => { }; context.openLink(link, openLinkOptions, (err: BusinessError, result: common.AbilityResult) => { if (err) { - const uiContext: UIContext | undefined = AppStorage.get('uiContext'); - uiContext?.getPromptAction().showToast({ message: "Some problems have occurred. Please try again later" }); + getUIContext.getPromptAction().showToast({ message: $r('app.string.error_toast') }); return; } console.info(`startAbilityForResult succeed, result is ${JSON.stringify(result)}`); if (result.resultCode === 200) { - const uiContext: UIContext | undefined = AppStorage.get('uiContext'); - uiContext?.getPromptAction().showToast({ message: "Payment successful" }) + getUIContext.getPromptAction().showToast({ message: $r('app.string.payment_status') }) } }) }