shuishen
2025-10-16 49749253ca2a388904243826b28d8d03c9fb8e71
feat:WebViewPlus配置调整
1 files modified
41 ■■■■ changed files
src/components/WebViewPlus.vue 41 ●●●● patch | view | raw | blame | history
src/components/WebViewPlus.vue
@@ -1,42 +1,41 @@
<template>
  <web-view :src="src" @message="viewMessage"/>
  <web-view :src="src" @message="viewMessage" />
</template>
<script setup>
const src = defineModel('src')
const emit = defineEmits(['webMessage'])
const src = defineModel("src");
const emit = defineEmits(["webMessage"]);
function viewMessage(event) {
  messageFun({
    data: {
      data: {arg: event.detail.data[0]},
      type: 'WEB_INVOKE_APPSERVICE'
      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'){
  if (e.data.type === "WEB_INVOKE_APPSERVICE") {
    if (e.data.data.arg.type === "tokenExpired") {
      return uni.redirectTo({
        url: '/pages/login/index'
      })
        url: "/pages/login/index",
      });
    }
    emit('webMessage', e.data.data.arg)
    emit("webMessage", e.data.data.arg);
  }
}
onShow(() => {
  window.addEventListener('message', messageFun)
})
  if (window && window.addEventListener)
    window.addEventListener("message", messageFun);
});
onHide(() => {
  window.removeEventListener('message', messageFun)
})
  if (window && window.removeEventListener)
    window.removeEventListener("message", messageFun);
});
</script>
<style scoped lang="scss">
</style>
<style scoped lang="scss"></style>