Webview框架又出包?最近一次Webview更新后,迷雾通UI无法打开

现在我这边迷雾通UI开不了,实际上是一开就闪退,没出界面就先闪退。
去“C:\Program Files (x86)\Microsoft\EdgeWebView\Application\SetupMetrics”这个文件夹查看webview更新记录,果然近期有更新。
然后现在迷雾通UI就是怎么也打不开。重装迷雾通,或者运行迷雾通文件夹里那个MicrosoftEdgeWebview2Setup.exe,这些全都不管用。

现在我只能用命令行模式运行迷雾通了
在任意位置建立一个launch.bat文件,内容如下:

"C:\Program Files (x86)\迷雾通\geph4-client.exe" connect --username 你的用户名 --password 你的密码

(注意!此时还得做一件事情,用记事本打开那个launch.bat,重新保存一遍,编码格式一定一定选成ANSI,否则用不了!
我就不明白为什么,如果存成默认的UTF-8编码,执行时,会把“迷雾通\”这部分读取成“杩烽浘閫歕”,也就是乱码,然后提示路径错误,文件不存在——UTF存在的意义不就是为了去除乱码吗?)
然后就得一直有一个肉眼可见的CMD窗口在那里。
并且这样做你就把自己用户名密码明文存在电脑上另一个文件里了。存个不那么显眼的地方,起个不那么显眼的名字吧。

(若想隐藏CMD窗口,可以再新建一个launch.vbs文件,和之前那个launch.bat放在一起。vbs文件内容如下:

set r=createobject("wscript.shell")
r.run "launch.bat",0,true

此时再运行launch.vbs,就可以后台运行迷雾通客户端了。)

有件事早就想说了,只是一直没有证据,现在算是有了:
webview这种一个框架供应所有程序的理念,根本就是有问题的!
原因就在于,每次更新框架,都得保证和有史以来这个框架开发过的每一个应用兼容。
但这是不可能的。

其他应用都没有这么做的,都是每个应用自带自己的框架版本。
比如所有Unreal引擎,Unity引擎的游戏,所有Electron框架应用,
以及Java应用等(不过Java也允许应用开发者不内置自己的java版本,而是直接用系统里装的java。)

上一个像webview这样做事的框架,是Adobe Flash!
(当然也有一些像Unity Player,Adobe Air,Shockwave Player这样的。但那些知名度实在太小,属于“我不提你都不知道有这东西”那种,就不算数了。)

如果非要系统装一个框架给所有程序用,那就应该像VC运行库那样,出一个运行库之后就永远不更新(除非有重大安全漏洞,不得不更新)。
然后过几年再出一个新版本的运行库,并且新旧版本运行库可以共存。

像webview这种做法,就是“迟早要出事”的节奏。一个框架供应所有应用,框架还频繁更新?还只保留最新版本?不出问题才怪!

用相对路径,就不存在乱码问题了
不建议隐藏窗口,这样就无法实时查看网络质量了
习惯用shell之后,基本上可以抛弃ui了
shell还能实现开机自动连接

因为简体中文版的 Windows 系统字符编码是 GBK

# Python3
s = '迷雾通\\'
print(s) #=> 迷雾通\
print(s.encode('utf-8').decode('gbk')) #=> 杩烽浘閫歕
1 个赞

正常呢,C:\Users\用户名\AppData\Roaming\EBWebView 下文件 Last Version 内容 110.0.1587.46
与 C:\Program Files (x86)\Microsoft\EdgeWebView\Application 下文件夹名称 110.0.1587.46 一致。

退出迷雾通,运行迷雾通文件夹下的 MicrosoftEdgeWebview2Setup.exe 更新下 EBWebView ?

试试:
记住用户名与密码,删除文件夹 C:\Users\用户名\AppData\Roaming\EBWebView 后再运行?

试了一下 这个乱码问题是因为CMD程序是识别带代码页的MBCS而不是unicode 而它又是bat文件的解释器。

莫非也如 为什么打不开迷雾通 - #8,来自 tyt
貌似国祸的锅?