罗广辉
2025-10-23 6d009f08368f93713c1ebeca6acde4163042faa4
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
41
<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(() => {
  if (window && window.addEventListener)
    window.addEventListener("message", messageFun);
});
onHide(() => {
  if (window && window.removeEventListener)
    window.removeEventListener("message", messageFun);
});
</script>
 
<style scoped lang="scss"></style>