HarmonyOS 鸿蒙Next promptAction自定义弹窗中链接跳转页面处理机制:点击链接跳转后弹窗消失,返回时弹窗保留
HarmonyOS 鸿蒙Next promptAction自定义弹窗中链接跳转页面处理机制:点击链接跳转后弹窗消失,返回时弹窗保留
promptAction.openCustomDialog自定义弹窗中,如果内容有链接,点击链接跳转到其他页面。弹窗消失,返回时弹窗保留,现在满足不了这种操作,有什么办法吗
3 回复
你参考一下
import { router } from '@kit.ArkUI'
@Entry
@Component
struct Page {
@State showDialog:boolean = false
build() {
Column() {
Text('弹出弹窗')
.padding(50)
.onClick(()=>{
this.showDialog = true
})
}
.width("100%")
.height("100%")
.overlay(this.myDialog())
}
@Builder
myDialog(){
Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}){
// 隐私弹窗
Column() {
Text("注册应用账号").fontSize(30).height('20%')
Text("请您仔细阅读一下协议并同意,我们将全力保护您的个人信息安全,您可以使用账号登录APP。").height('40%')
Divider()
Row(){
Text("《应用隐私政策》").onClick(ent => {
router.pushUrl({url:"pages/Index"})
})
}
.height('20%')
Divider()
Row(){
Button("不同意").onClick(ent => {
}).width('30%').margin(5)
Button("同意").onClick(ent => {
}).width('30%').margin(5)
}.height('20%')
}
.borderRadius(20)
.onClick(()=>{
})
.width(300)
.height(400)
.backgroundColor(Color.White)
}
.visibility(this.showDialog?Visibility.Visible:Visibility.None)
.onClick(()=>{
this.showDialog = false
})
.width('100%')
.height('100%')
.backgroundColor('rgba(0,0,0,0.5)')
}
}
就跟隐私政策弹窗一样,写在onPageShow
在HarmonyOS鸿蒙Next中,针对promptAction自定义弹窗中链接跳转页面处理机制的问题,即点击链接跳转后弹窗消失,返回时希望弹窗保留,可以通过以下方式实现:
首先,确保弹窗的模态设置正确。如果弹窗被设置为模态(isModal: true),在触摸弹框外部或进行页面跳转时,弹框可能会消失。因此,需要将弹窗设置为非模态(isModal: false),这样在进行页面跳转时,弹窗将不会消失。
其次,使用合适的弹窗类型。在HarmonyOS中,Navigation.Dialog类型的弹窗基于Navigation路由形式,以进出栈的方式打开或关闭弹窗。使用这种类型的弹窗可以实现弹窗与UI界面解耦,从而确保在界面跳转后弹窗仍然保留。
最后,在应用内部逻辑中妥善处理弹窗的显示和隐藏逻辑。确保在用户未做出明确选择之前,弹窗不会因为页面跳转而消失。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。