最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序如何優(yōu)雅地跳轉(zhuǎn)外部鏈接詳解(WebView+復(fù)制方案實戰(zhàn))

 更新時間:2025年11月03日 11:00:46   作者:Stroller_1  
在微信小程序開發(fā)過程中,實現(xiàn)跳轉(zhuǎn)外鏈接功能可拓展小程序應(yīng)用場景,下面這篇文章主要介紹了微信小程序如何優(yōu)雅地跳轉(zhuǎn)外部鏈接的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在做小程序開發(fā)的過程中,我們經(jīng)常會遇到這樣一個需求: ?? 用戶在小程序里點開一個課程/資料,需要跳轉(zhuǎn)到公司內(nèi)部的學(xué)習(xí)系統(tǒng)或者外部網(wǎng)站。

問題來了:

  • 小程序禁止直接用 <a> 標(biāo)簽跳轉(zhuǎn)外部網(wǎng)頁

  • 也不能像瀏覽器里那樣用 window.open

  • 那么,怎么實現(xiàn)呢?

這篇文章我會結(jié)合實際項目,聊聊 兩種常見方案

  1. 業(yè)務(wù)域名 + WebView 打開外部鏈接

  2. 不在業(yè)務(wù)域名里的 → 自動復(fù)制鏈接

背景:小程序的安全限制

微信對小程序的外部鏈接有嚴(yán)格限制:

  • 只能通過 <WebView /> 組件來加載 H5 頁面。

  • 這個 H5 的域名,必須提前在 小程序后臺 → 開發(fā)設(shè)置 → 業(yè)務(wù)域名 配置。

  • 沒配置的域名,一律打不開。

所以,解決問題的第一步就是搞清楚: ?? 目標(biāo)鏈接的域名是否可控、能否添加到業(yè)務(wù)域名里。

方案一:業(yè)務(wù)域名 + WebView

如果域名可控,那就很簡單:

(1)后臺配置業(yè)務(wù)域名

微信公眾平臺開發(fā) → 開發(fā)管理 → 開發(fā)設(shè)置 里,把外部系統(tǒng)的域名加到「業(yè)務(wù)域名」里。

(2)封裝一個 Webview 頁面

新建一個 pages/webview/index.tsx 頁面:

import { WebView } from '@tarojs/components'
import { useRouter } from '@tarojs/taro'
?
export default function WebviewPage() {
  const router = useRouter()
  const { url } = router.params   // 從路由參數(shù)里取出外部鏈接
?
  return (
    <WebView src={decodeURIComponent(url || '')} />
  )
}

(3)點擊跳轉(zhuǎn)時傳遞外部鏈接

在業(yè)務(wù)頁面中,比如課程列表:

Taro.navigateTo({
  url: `/pages/webview/index?url=${encodeURIComponent(course.link)}`
})

這樣就能在小程序里「無縫」打開外部網(wǎng)頁,用戶體驗和原生瀏覽器幾乎一樣。

方案二:域名不可控 → 自動復(fù)制鏈接

有些情況,外部系統(tǒng)的域名是公司內(nèi)網(wǎng)的,根本沒法加到微信后臺的「業(yè)務(wù)域名」里。 這時 WebView 打不開,只能換個思路:

?? 點擊課程 → 直接復(fù)制鏈接 → 提示用戶去內(nèi)網(wǎng)環(huán)境手動打開。

實現(xiàn)也很簡單,用 Taro 的 setClipboardData

<View
  className="course-name"
  style={{ color: "#1e90ff" }}
  onClick={() => {
    Taro.setClipboardData({
      data: course.link,
      success: () => {
        Taro.showToast({
          title: '鏈接已復(fù)制',
          icon: 'success',
          duration: 2000
        })
      }
    })
  }}
>
  {course.className}
</View>

這樣用戶點擊課程名時,會復(fù)制到剪貼板,配合一個 Toast 提示,交互也很自然。

進階:自動判斷策略

在項目里,我們甚至可以做一個「自動判斷」:

  • 如果 course.link 的域名在白名單里 → 走 WebView。

  • 否則 → 自動復(fù)制。

簡單寫法:

const whiteList = ['example.com', 'study.company.com']
?
const openLink = (link: string) => {
  const domain = new URL(link).hostname
?
  if (whiteList.includes(domain)) {
    Taro.navigateTo({
      url: `/pages/webview/index?url=${encodeURIComponent(link)}`
    })
  } else {
    Taro.setClipboardData({
      data: link,
      success: () => {
        Taro.showToast({ title: '鏈接已復(fù)制', icon: 'success' })
      }
    })
  }
}

這樣在不同環(huán)境下都能兜底,用戶體驗更統(tǒng)一。

踩坑記錄

  1. WebView 無法打開? ?? 90% 是域名沒加到「業(yè)務(wù)域名」,或者 Https 證書有問題。

  2. 鏈接里有特殊字符? ?? 記得用 encodeURIComponent / decodeURIComponent 做參數(shù)傳遞。

  3. 公司內(nèi)網(wǎng)地址打不開? ?? 必須用復(fù)制方案,WebView 沒法解決。

總結(jié)

  • 微信小程序里 不能直接跳轉(zhuǎn)外部網(wǎng)頁,只能走 <WebView />

  • 能加業(yè)務(wù)域名 → WebView 打開

  • 不能加 → 復(fù)制鏈接兜底

  • 最佳實踐:寫一個 統(tǒng)一的打開鏈接函數(shù),自動選擇策略。

這樣既符合微信的限制,又能保證用戶體驗。

??‍?? 以上就是我在實際項目中踩坑總結(jié)的「小程序跳轉(zhuǎn)外部鏈接」兩種思路,希望能幫到你! 如果你也在做類似需求,歡迎留言交流~

到此這篇關(guān)于微信小程序如何優(yōu)雅地跳轉(zhuǎn)外部鏈接的文章就介紹到這了,更多相關(guān)微信小程序跳轉(zhuǎn)外部鏈接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于javascript如何傳遞特殊字符

    基于javascript如何傳遞特殊字符

    在 JavaScript 中使用反斜杠來向文本字符串添加特殊字符,下面通過本篇文章給大家介紹javascript如何傳遞特殊字符,對js傳遞特殊字符相關(guān)內(nèi)容感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • 原生js頁面滾動延遲加載圖片

    原生js頁面滾動延遲加載圖片

    這篇文章主要介紹了原生js頁面滾動延遲加載圖片的相關(guān)資料,現(xiàn)在瀑布流效果大行其道,各種網(wǎng)站都有應(yīng)用,尤其是專業(yè)的圖片類型的網(wǎng)站,感興趣的朋友可以參考下
    2015-12-12
  • 使用TypeScript實現(xiàn)楊輝三角的代碼示例

    使用TypeScript實現(xiàn)楊輝三角的代碼示例

    楊輝三角,又稱帕斯卡三角,是一個數(shù)學(xué)上非常有趣和重要的概念,它是一種數(shù)學(xué)結(jié)構(gòu),它不僅可以用于組合數(shù)學(xué),還可以應(yīng)用于代數(shù)、概率和許多其他領(lǐng)域,在本文中,我們將通過使用?TypeScript?來編寫楊輝三角的程序,同時深入探討?TypeScript?的類型系統(tǒng)
    2023-09-09
  • javascript瀑布流式圖片懶加載實例解析與優(yōu)化

    javascript瀑布流式圖片懶加載實例解析與優(yōu)化

    這篇文章主要針對javascript瀑布流式圖片懶加載實例進行解析與優(yōu)化,感興趣的小伙伴們可以參考一下
    2016-02-02
  • zepto.js 實時監(jiān)聽輸入框的方法

    zepto.js 實時監(jiān)聽輸入框的方法

    今天小編就為大家分享一篇zepto.js 實時監(jiān)聽輸入框的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 微信小程序開發(fā)之map地圖組件定位并手動修改位置偏差

    微信小程序開發(fā)之map地圖組件定位并手動修改位置偏差

    這篇文章主要介紹了微信小程序開發(fā)之map地圖組件,定位,并手動修改位置偏差,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 純前端生成PDF(jsPDF)并下載保存或上傳到OSS的代碼示例

    純前端生成PDF(jsPDF)并下載保存或上傳到OSS的代碼示例

    這篇文章主要介紹了純前端生成PDF(jsPDF)并下載保存或上傳到OSS的相關(guān)資料,主要步驟包括獲取DOM節(jié)點、生成PDF、保存或上傳PDF,文章還提到了一些注意事項,需要的朋友可以參考下
    2025-01-01
  • js實現(xiàn)iframe動態(tài)調(diào)整高度的代碼

    js實現(xiàn)iframe動態(tài)調(diào)整高度的代碼

    iframe,尤其是不帶邊框的iframe因為能和網(wǎng)頁無縫的結(jié)合從而不刷新頁面的情況下更新頁面的部分?jǐn)?shù)據(jù)成為可能,可是iframe的大小卻不像層那樣可以“伸縮自如”,所以帶來了使用上的麻煩,給iframe設(shè)置高度的時候多了也不好,少了更是不行,現(xiàn)在,讓我來告訴大家一種iframe動態(tài)調(diào)整高度的方法,主要是以下JS函數(shù):
    2008-01-01
  • JS檢測是否可以訪問公網(wǎng)服務(wù)器功能代碼

    JS檢測是否可以訪問公網(wǎng)服務(wù)器功能代碼

    檢測AC是否放行成功,是否可以訪問公網(wǎng)阿里云服務(wù)器。下面給大家分享JS檢測是否可以訪問公網(wǎng)服務(wù)器功能代碼,需要的的朋友參考下吧
    2017-06-06
  • js如何讀取csv內(nèi)容拼接成json

    js如何讀取csv內(nèi)容拼接成json

    這篇文章主要介紹了js如何讀取csv內(nèi)容拼接成json,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

固始县| 长乐市| 洛扎县| 富蕴县| 镇沅| 水富县| 峨边| 会理县| 鄂托克旗| 阿拉善左旗| 清丰县| 临海市| 米易县| 肥西县| 察雅县| 牡丹江市| 平果县| 志丹县| 柘城县| 江津市| 肃北| 康保县| 霍林郭勒市| 青岛市| 新蔡县| 内丘县| 南皮县| 满洲里市| 杭锦后旗| 上林县| 太康县| 鲁山县| 井研县| 绥阳县| 临沧市| 石渠县| 三门峡市| 团风县| 江阴市| 新宁县| 重庆市|