HarmonyOS AppStorage存储后只有设置的模块能获取到,其它模块获取不到

在entry模块的EntryAbility中设置了AppStorage,当前模块的页面中可以获取到。

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';  
import { hilog } from '@kit.PerformanceAnalysisKit';  
import { window } from '@kit.ArkUI';  
import { Request, ApiResponse } from 'network';  
import { Logger } from 'utils'  
import { InitConfig } from '../model/InitConfig'  
const TAG = '[EntryAbility]'  
export default class EntryAbility extends UIAbility {  
  async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void> {  
    // 获取初始配置  
    const res: ApiResponse<InitConfig> = await Request.get('/hlifeproxy/init/config/v1.0')  
    AppStorage.setOrCreate('userAgreementUrl', res.body.pact.userAgreement)  
    AppStorage.setOrCreate('privacyPolicyUrl', res.body.pact.privacyPolicy)  
    // Logger.info(TAG, res.body.imageDomain)  
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');  
  }  
  ...  
}

在features目录下的login模块中读取这个配置,获取不到。

import media from '@ohos.multimedia.media'  
import promptAction from '@ohos.promptAction'  
import { Logger } from 'utils'  
import { NormalWebView, NormalWebViewParams } from 'browser'  
import { StepOne } from './register/StepOne'  
const TAG = '[LoginPage]'  
@Entry  
@Preview  
@Component  
struct Index {  
  @StorageLink('userAgreementUrl') userAgreementUrl: string = '';  
  @StorageLink('privacyPolicyUrl') privacyPolicyUrl: string = '';  
  @State agree: boolean = false  
  @Provide('loginPageStack') loginPageStack: NavPathStack = new NavPathStack();  
  onPageShow(): void {  
    const t: SubscribedAbstractProperty<string> = AppStorage.link('userAgreementUrl')  
    Logger.info(TAG, t)  
  }  
  @Builder  
  addRouter(name: string, param: object) {  
    if (name === 'normalWebview') {  
      NormalWebView();  
    } else if (name === 'registerStepOne') {  
      StepOne();  
    }  
  }  
  ...  
}

AppStorage不是全局的吗?为什么其它模块获取不到呢?

HarmonyOS
2024-10-11 12:18:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

AppStorage是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。杀进程之后,AppStorage应该就会被清理。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-appstorage-V5

分享
微博
QQ
微信
回复
2024-10-11 17:36:17
相关问题
有没有接口获取到组件宽度
736浏览 • 1回复 待解决
业务模块HAR如何获取宿主HAP数据
1916浏览 • 1回复 待解决
无法读取到hsp模块rawfile文件
1961浏览 • 1回复 待解决
导入ohos相关模块都找不到
6306浏览 • 1回复 待解决
HarmonyOS getContext()获取不到
91浏览 • 1回复 待解决