收藏
回答

小程序中自定义了弹窗组件,想作为全局的弹窗,用户进来哪个页面都会弹出弹窗,有没有实现方案?

需要进入每个页面都提示,但是小程序没有路由拦截方案,因为我的页面是有逻辑的,加载完就执行完了,想在执行之前就弹出提示,类似授权弹窗,如果用户拒绝就退出小程序,同意就正常访问小程序。

要求:

1.做全局处理,启动小程序的时候就弹出提示,弹窗里有协议,用户拒绝就关闭小程序,终止访问流程,同意就继续访问

2.不用每个页面都做引入组件改动,进入页面之前就处理这个逻辑

以下是组件代码:

<!--components/dialog/dialog.wxml-->

<view class="e-load-view">

<view class="e-dialog-view">

<view class="title">用户隐私保护提示</view>

<view class="content">在您使用【XXXXX】服务之前,请仔细阅读<span class="link" bindtap="clickLink">《保护指引》</span>。当您点击同意时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力。</view>

<view class="footer">

<navigator target="miniProgram" open-type="exit" class="footer-btn cancel" ><span bindtap="refuse">拒绝</span></navigator>

<span class="footer-btn confirm" bindtap="argee">同意</span>

</view>

</view>

</view>

-------------------------------------------------------------------------------

// components/dialog/dialog.js

Component({

/**

* 组件的属性列表

*/

properties: {

isShow: {

type: Boolean,

}

},


/**

* 组件的初始数据

*/

data: {

showDialog: false,

},


/**

* 组件的方法列表

*/

methods: {

// 跳转隐私授权协议

clickLink: function(e) {

wx.navigateTo({

url: '/pages/about/webviewPage/index?id=privacyPolicy',

})

},

refuse: function(e) {

this.triggerEvent('refuseFn', e);

wx.setStorageSync('privacyDialogAuthorizationStatus', 'N');

},

argee: function(e) {

wx.setStorageSync('privacyDialogAuthorizationStatus', 'Y');

this.triggerEvent('confirmFn', e);

},

}

})

回答关注问题邀请回答
收藏

4 个回答

  • showms
    showms
    01-07

    目前的确是每个页面得引入组件才行

    01-07
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    01-07
    有用
  • 一笑皆春
    一笑皆春
    01-07

    是的,就跟你说的,小程序的话需要页面引用才可以弹出

    01-07
    有用
    回复 2
    • 小头子
      小头子
      发表于移动端
      01-07
      好麻烦,就是不想每个页面都改动,想做全局处理都没有实现方案
      01-07
      回复
    • 一笑皆春
      一笑皆春
      01-07回复小头子
      没有
      01-07
      回复
  • 小头子
    小头子
    01-07

    查了好久都是需要页面单独引用组件,无法满足我的要求,有没有好心人帮忙解答

    01-07
    有用
    回复
登录 后发表内容