前言¶
智能體開發中,經常需要調用外部網頁內容。在 DshDesktop 桌面殼中,直接嵌入網頁常受目標站點的 iframe 限制。dsh-web-browse 插件通過 WebView2 擴展和通用瀏覽器雙端適配,在保持操作一致性的同時,解決了網頁內嵌與瀏覽器標籤頁管理的需求。
插件介紹¶
這是一個 DSH 的通用網頁瀏覽插件。在 DshDesktop 桌面殼與 Edge/Chrome 等通用瀏覽器 中,都能把網頁以獨立標籤頁打開。
- 維護者:sweven-tears
- 類別:客戶端
- 許可證:MIT
核心功能¶
該插件提供了一套統一的網頁瀏覽能力,具體包括:
- 側邊欄快速入口:側邊欄「🌐 網頁瀏覽」按鈕。左鍵打開默認網址;右鍵彈出懸浮搜索框。
- 懸浮搜索框:輸入網址直接訪問;輸入文字按所選引擎搜索;確認後在新標籤頁打開;Esc 或點擊框外關閉。
- 選中文本搜索:DshDesktop 中在原生右鍵菜單「複製」下方追加「🔍 搜索選中文本」項,點擊即搜(僅 DshDesktop)。
- 新標籤頁打開:DshDesktop 中爲桌面網頁標籤頁;通用瀏覽器中爲瀏覽器新標籤頁。
- 網頁頂部欄:DshDesktop 中由 WebView2 擴展注入地址/搜索欄(僅 DshDesktop)。
- 網頁瀏覽設置:支持默認網址、啓動自動打開、搜索引擎(內置 + 自定義)配置,設置保存在 localStorage。
架構設計¶
插件目錄結構如下:
dsh-web-browse/
├── lib/ harness 插件:側邊欄按鈕、懸浮搜索框、「網頁瀏覽設置」(localStorage)
├── extension/ WebView2 擴展(MV3 內容腳本):網頁頂部地址/搜索欄(僅 DshDesktop)
├── dsh.plugin.json
├── cordis.patch.yml
└── package.json
lib/ 目錄(Harness 插件)¶
- 側邊欄按鈕:調用
window.dshDesktop.openWebTab(url)或window.open(url, '_blank')。 - 右鍵菜單搜索:DshDesktop 宿主在 WebView2 原生右鍵菜單「複製」正下方追加「🔍 搜索選中文本」項,點擊以選中文本打開懸浮搜索框。
- 網頁瀏覽設置:DshDesktop 中經
window.dshDesktop.setWebSettings()同步給桌面宿主;通用瀏覽器中爲 no-op。
extension/ 目錄(WebView2 擴展)¶
- 自動加載:DshDesktop 啓動時掃描 harness 的
plugins目錄,識別含manifest.json的擴展目錄並加載。 - 頂部欄注入:在非 harness 頁面(排除本地設置頁)注入固定頂部欄,包含後退/前進、地址欄、搜索引擎下拉等操作。
使用說明¶
根據運行環境不同,功能表現略有差異。
DshDesktop 環境¶
- 側邊欄操作:點擊側邊欄「🌐 網頁瀏覽」按鈕左鍵打開默認網頁;點擊按鈕右鍵彈出懸浮搜索框。
- 選中文本搜索:在網頁中選中文字後右鍵,選擇「🔍 搜索選中文本」。
- 頂部欄操作:在頂部地址欄輸入網址或搜索詞進行訪問或搜索。
- 設置同步:設置會同步給所有網頁標籤頁的頂部欄。
通用瀏覽器(Edge / Chrome 等)¶
- 側邊欄操作:點擊側邊欄按鈕左鍵打開默認網頁;點擊按鈕右鍵彈出懸浮搜索框。
- 頂部欄與右鍵菜單:無
window.dshDesktop橋,頂部欄注入與右鍵菜單搜索不可用。 - 打開方式:所有打開操作使用
window.open(url, '_blank'),非用戶手勢觸發的操作(如啓動自動打開)可能被瀏覽器彈窗攔截。
注意事項¶
- 依賴環境:DshDesktop 需要支持 MV3 擴展的 WebView2 Runtime。
- 通用瀏覽器限制:無法使用頂部欄注入和右鍵菜單搜索功能。
- 站點限制:個別站點(如 Google)可能禁止第三方注入或存在反爬限制,頂部欄按鈕可能不可用,此時可使用側邊欄按鈕或標籤條操作。
- 安裝方式:資料未提供具體安裝命令。