罗广辉
2025-10-15 cf1fbd1e05276318ca05c7cfdcdb07f0d1331b16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<template>
  <web-view :src="src" @message="viewMessage"/>
</template>
 
<script setup>
 
const src = defineModel('src')
const emit = defineEmits(['webMessage'])
 
function viewMessage(event) {
  messageFun({
    data: {data: {arg: event.detail.data[0]}},
    type: 'WEB_INVOKE_APPSERVICE'
  })
}
// WEB_INVOKE_APPSERVICE
function messageFun(e) {
  if(e.data.type === 'WEB_INVOKE_APPSERVICE'){
    if (e.data.data.arg.type === 'tokenExpired'){
      return uni.redirectTo({
        url: '/pages/login/index'
      })
    }
    emit('webMessage', e.data.data.arg)
  }
}
 
onShow(() => {
  window.addEventListener('message', messageFun)
})
onHide(() => {
  window.removeEventListener('message', messageFun)
})
 
 
</script>
 
<style scoped lang="scss">
 
</style>