Browse Source

feat: banner 跳转安全链接

EvilDragon 4 months ago
parent
commit
39602027fa

+ 4 - 0
packages/app/src/pages.json

@@ -119,6 +119,10 @@
       }
     },
     {
+      "path": "pages/common/webview/index",
+      "type": "page"
+    },
+    {
       "path": "pages/home/about/index",
       "type": "page",
       "style": {

+ 7 - 0
packages/app/src/pages/common/webview/index.vue

@@ -0,0 +1,7 @@
+<script setup lang="ts">
+const url = ref()
+onLoad(async (query: { url: string }) => {
+  url.value = query.url
+})
+</script>
+<template><web-view :src="url" /></template>

+ 7 - 1
packages/app/src/pages/home/components/banner.vue

@@ -14,7 +14,13 @@ const handleClick = ({ index }: { index: number }) => {
   const banner = banners.value[index]
   console.log(banner)
   if (banner.bannerDetailsType === '2') {
-    router.push(banner.bannerLinkUrl)
+    console.log(banner.bannerLinkUrl)
+    // 包含htt或者https的链接直接跳转
+    if (banner.bannerLinkUrl?.startsWith('http')) {
+      router.push(`/pages/common/webview/index?url=${banner.bannerLinkUrl}`)
+    } else {
+      router.push(banner.bannerLinkUrl)
+    }
   }
   if (banner.bannerDetailsType === '1') {
     router.push(`/pages/home/content/index?type=banner&id=${banner.id}`)

+ 1 - 0
packages/app/src/types/uni-pages.d.ts

@@ -10,6 +10,7 @@ interface NavigateToOptions {
        "/pages/material/index" |
        "/pages/messages/index" |
        "/pages/mine/index" |
+       "/pages/common/webview/index" |
        "/pages/home/about/index" |
        "/pages/home/classmates/index" |
        "/pages/home/classmates-detail/index" |