本来打算用系统提供四种不同的方式来实现自定义弹窗,但在开发的过程发现,查看隐私政策详情是采用打个一个新页面的方式(web访问隐私政策url),弹窗会在所有页面层级之上。
因此只好自定义组件实现弹窗和遮罩
自定义组件实现隐私弹窗
if (!this.isAgree) {
Column() {
PrivacyComponent({
onDisAgree: () => {
console.log('disagree')
},
onAggree: () => {
console.log('agree')
this.isAgree = true
}
})
}
.width('100%')
.height('100%')
.backgroundColor('#90000000')
.zIndex(9)
.justifyContent(FlexAlign.Center)
.onClick(() => {
})
}
组件
@Component
export struct PrivacyComponent {
onDisAgree:Function=()=>{
}
onAggree: Function = () => {
}
build() {
Column() {
Flex({ wrap: FlexWrap.Wrap }) {
Text('我已阅读并同意')
.fontColor(Color.White).lineHeight(28)
Text('《隐私协议》').fontColor($r('app.color.primary')).lineHeight(28).onClick(() => {
router.pushUrl({
url: 'pages/web/WebPage',
params: {
url: '/column/3/1.html'
}
})
})
Text('和').fontColor(Color.White).lineHeight(28)
Text('《用户协议》').fontColor($r('app.color.primary')).lineHeight(28).onClick(() => {
router.pushUrl({
url: 'pages/web/WebPage',
params: {
url: '/column/4/1.html'
}
})
})
}
Flex({ justifyContent: FlexAlign.SpaceAround }) {
Button('不同意').backgroundColor(Color.Gray).onClick(() => {
this.onDisAgree()
})
Button('同意').onClick(() => {
this.onAggree();
})
}
.margin({
top: 25
})
}
.width('80%')
.padding(15)
.backgroundColor('#30ffffff')
.borderRadius(12)
}
}
- 版权所有:奇站网络 转载请注明出处
- 厦门奇站网络科技有限公司,专业提供网站建设,响应式网站建设,小程序开发,系统定制开发。
- 软件开发咨询热线:吴小姐 13313868605