pushAdStore.js 818 B

1234567891011121314151617181920212223242526272829
  1. import Vue from 'vue'
  2. /**
  3. * 全局推送/活动广告弹窗状态(App.vue 内统一挂载一层 UI)
  4. * 极光 extras 可约定字段:adImage(必填,图片 URL)、adUrl(可选,点击跳转)
  5. */
  6. export const pushAdState = Vue.observable({
  7. visible: false,
  8. imageUrl: '',
  9. linkUrl: '',
  10. extras: null
  11. })
  12. export function openPushAd(payload) {
  13. if (!payload || typeof payload !== 'object') return
  14. const imageUrl = payload.adImage || payload.imageUrl || payload.img
  15. if (!imageUrl) return
  16. pushAdState.imageUrl = imageUrl
  17. pushAdState.linkUrl = payload.adUrl || payload.linkUrl || payload.url || ''
  18. pushAdState.extras = payload
  19. pushAdState.visible = true
  20. }
  21. export function closePushAd() {
  22. pushAdState.visible = false
  23. pushAdState.imageUrl = ''
  24. pushAdState.linkUrl = ''
  25. pushAdState.extras = null
  26. }