From aa5ff163e6c95a696f505c8b0f54e63594b3223f Mon Sep 17 00:00:00 2001 From: JingHai-Lingyun Date: Mon, 10 Jun 2024 12:04:52 +0800 Subject: [PATCH] fix #3985 --- .../Modules/Base/ModBase.vb | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb index 95af7aad..5e963275 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb @@ -2185,16 +2185,22 @@ NextElement: ''' 打开网页。 ''' Public Sub OpenWebsite(Url As String) - Try - If Not Url.StartsWithF("http", True) Or Url = "minecraft://" Then Throw New Exception(Url & " 不是一个有效的网址,它必须以 http 开头!") - Log("[System] 正在打开网页:" & Url) - Process.Start(Url) - Catch ex As Exception - Log(ex, "无法打开网页(" & Url & ")") - ClipboardSet(Url, False) - MyMsgBox("可能由于浏览器未正确配置,PCL 无法为你打开网页。" & vbCrLf & "网址已经复制到剪贴板,若有需要可以手动粘贴访问。" & vbCrLf & - $"网址:{Url}", "无法打开网页") - End Try + ' 允许 Minecraft 基岩版的 URLScheme (#3985) + If Url.StartsWithF("minecraft", True) Then + ' 一定会被捕捉到错误,单独拎出来 + Process.Start("minecraft://") + Else + Try + If Not Url.StartsWithF("http", True) Then Throw New Exception(Url & " 不是一个有效的网址,它必须以 http 开头!") + Log("[System] 正在打开网页:" & Url) + Process.Start(Url) + Catch ex As Exception + Log(ex, "无法打开网页(" & Url & ")") + ClipboardSet(Url, False) + MyMsgBox("可能由于浏览器未正确配置,PCL 无法为你打开网页。" & vbCrLf & "网址已经复制到剪贴板,若有需要可以手动粘贴访问。" & vbCrLf & + $"网址:{Url}", "无法打开网页") + End Try + End If End Sub ''' ''' 打开 explorer。注意参数中的路径要尽量加上双引号!