HarmonyOS app 启动的时候需要弹窗,让用户同意才可以进入。我默认是用的tabbar来加载的?

有没有demo,启动的时候弹框,然后用户同意后,在执行tabbar的里的文件啊

阅读 574
1 个回答

可参考如下闪屏页(即进入app时先加载该页面),使用CustomDialog实现弹窗:

//自定义弹窗的代码
import { common } from '@kit.AbilityKit'
import { router } from '@kit.ArkUI'

@CustomDialog
export struct CustomPrivacyAgreement{
  controller:CustomDialogController = new CustomDialogController({
    builder:CustomPrivacyAgreement({})
  })
  sample:string = '为了保护用户隐私信息,确保用户获得良好的登录体验,根据《华为开发者服务协议》、《华为APIs使用协议》、《应用审核指南》、《元服务审核指南》等相关协议条款及现行法律法规,平台制定了华为帐号登录管理细则,使用华为帐号登录的应用请遵照执行,具体要求如下:'

  build() {
    Column(){
      TextArea({text:this.sample}).maxLength(10000)
      Row(){
        Text('同意').onClick(()=>{
          this.controller.close()
          router.replaceUrl({
            url:"pages/Index"//同意协议时可跳转到您的tabbar所在页面地址
          })
        })
        Text('拒绝').onClick(()=>{
          const context = getContext(this) as common.UIAbilityContext;
          context.terminateSelf()//退出app
        })
      }.width('100%').justifyContent(FlexAlign.SpaceBetween)

    }.width('90%').height('50%')
  }
}

/*启动Page页面(闪屏页面)的代码*/
@Entry
@Component
struct Splash {
  //定义controller
  controller:CustomDialogController = new CustomDialogController({
    builder:CustomPrivacyAgreement({}),
    onWillDismiss:(dismissDialogAction: DismissDialogAction)=> {
      //该方法可以阻止用户点击返回键、点击遮障层已经侧滑时关闭弹窗
      console.info("reason=" + JSON.stringify(dismissDialogAction.reason))
      console.log("dialog onWillDismiss")
    },
  })
  //编写方法
  aboutToAppear() {
    this.controller.open()
  }
  build() {
  }
}

CustomDialog自定义弹窗参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进