多个pageAbility之间如何共享变量

多个pageAbility之间如何共享变量

HarmonyOS
2024-01-30 21:00:24
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
golcm
  • 方式一:可以通过用户首选项实现数据持久化。
import dataPreferences from '@ohos.data.preferences'; 
import { BusinessError } from '@ohos.base'; 
 
let preferences: dataPreferences.Preferences | null = null; 
try { 
  preferences.put('startup', 'auto', (err: BusinessError) => { 
    if (err) { 
      console.error(`Failed to put data. Code:${err.code}, message:${err.message}`); 
      return; 
    } 
    console.info('Succeeded in putting data.'); 
  }) 
} catch (err) { 
  console.error(`Failed to put data. Code: ${err.code},message:${err.message}`); 
} 
try { 
  preferences.flush((err) => { 
    if (err) { 
      console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); 
      return; 
    } 
    console.info('Succeeded in flushing.'); 
  }) 
} catch (err) { 
  console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); 
}
  • 方式二:可以通过@StorageLink搭配PersistentStorage接口可以实现数据本地持久化。
import router from '@ohos.router'; 
 
PersistentStorage.persistProp("time", "Hello, OpenHarmony") 
 
@Entry 
@Component 
struct ComponentTest { 
  // 初始化time1,如果AppStorage 
  @StorageLink('time') time1: string = "1648643734154"; 
  @StorageLink('time') time2: string = "OpenHarmony"; 
  build() { 
    Column({ space: 10 }) { 
      Text(`父组件【${this.time1}】`) 
        .fontSize(20) 
        .backgroundColor(Color.Pink) 
      Button('更新时间') 
        .onClick(() => { 
          this.time2 = new Date().getTime().toString(); 
        }) 
      Button('跨页面数据绑定') 
        .onClick(() => { 
          router.pushUrl({ url: "pages/test/setting" }) 
        }) 
    } 
    .width('100%') 
    .height('100%') 
    .padding(10) 
  } 
}


分享
微博
QQ
微信
回复
2024-02-01 00:50:14
相关问题
PageAbility配合多个Slice实现页面间切换
11728浏览 • 4回复 已解决
怎么理解pageAbility
1261浏览 • 1回复 待解决
多个UIAbility是多个进程吗
106浏览 • 1回复 待解决
多个UIAbility是多个进程吗?
92浏览 • 1回复 待解决
@Extend的样式如何跨组件共享
501浏览 • 1回复 待解决
如何跳转到共享包中的指定页面
96浏览 • 1回复 待解决
如何处理HAR之间的互相依赖
145浏览 • 1回复 待解决
如何申请多个长时任务
136浏览 • 1回复 待解决
mysql 如何匹配多个 like 条件?
2072浏览 • 1回复 待解决
mybatis 多个参数时,如何用in?
526浏览 • 1回复 待解决
nginx如何部署多个asp.net core站点??
452浏览 • 1回复 待解决
自定义弹窗中的变量如何传递给页面
161浏览 • 1回复 待解决
卡片和app之间的数据是如何交互的
101浏览 • 1回复 待解决
polardb跑在ceph共享存储里面吗?
1121浏览 • 1回复 待解决
如何多个 RDB 文件中恢复 Redis?
885浏览 • 1回复 待解决