HarmonyOS 需要一个全局弹窗实现接口升级提示

App每个接口都可能返回升级code,需要在接口拦截器中实现一个全局弹窗,由于接口是并发的,弹窗只能弹窗一次,需要怎么实现这个全局弹窗,获取到升级地址跳转到应用商店?

HarmonyOS
2024-12-26 15:02:46
1302浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

参考示例代码:

// 1.封装1个弹框实例类CustomDialogLayou.ets
@CustomDialog
export struct CustomDialogLayout {
  controller?: CustomDialogController
  build() {
    Column() {
      Text('Global Custom Dialog Test')
    }
    .justifyContent(FlexAlign.Center)
    .alignItems(HorizontalAlign.Center)
    .height(400)
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
//2.在window的入口page(比如Index.ets)里import并创建实例
import { CustomDialogLayout } from './CustomDialogLayout'
dialogController: CustomDialogController | null = new CustomDialogController({
  builder: CustomDialogLayout({
  }),
  cancel: this.onCancel,
  autoCancel: true,
  alignment: DialogAlignment.Center,
})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
//3.在MainAbility.ts的onCreate方法里通过AppStorage定义关于弹框显示的全局属性,默认false不显示
AppStorage.setOrCreate('showGlobalCustomDialog', false)
  • 1.
  • 2.
//4.在Index.ets里监听此属性值改变并进行拉起动作
@StorageLink('showGlobalCustomDialog') @Watch('globalCustomDialogStateChange') showGlobalCustomDialog: boolean = false
globalCustomDialogStateChange() {
  if (this.showGlobalCustomDialog) {
    if (this.dialogController != null) {
      this.dialogController.open()
      AppStorage.setOrCreate('showGlobalCustomDialog', false)
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
//5.在需要调用的页面设置全局属性为true即可调起弹框
AppStorage.setOrCreate('showGlobalCustomDialog', true)
  • 1.
  • 2.
分享
微博
QQ
微信
回复
2024-12-26 16:43:21


相关问题
如何在全局实现一个自定义dialog弹窗
3662浏览 • 1回复 待解决
HarmonyOS 实现一个全局浮动的视图
598浏览 • 1回复 待解决
ArkTS如何实现一个底部弹窗
1807浏览 • 1回复 待解决
如何实现一个带动画的弹窗
1301浏览 • 1回复 待解决
如何判断一个对象实现了某个接口
2408浏览 • 1回复 待解决
利用native接口实现一个圆角矩形
2414浏览 • 1回复 待解决
如何实现一个验证码弹窗子窗口
1205浏览 • 1回复 待解决
HarmonyOS 需要一个图片预览组件
1040浏览 • 1回复 待解决
如何实现一个自定义样式的toast提示
2765浏览 • 1回复 待解决
HarmonyOS 需要一个上下翻页的控件
787浏览 • 1回复 待解决
HarmonyOS 需要一个筛选页面的demo
1098浏览 • 1回复 待解决