当前位置:首页>Linux>Linux 下解决抖音网页端反复弹出「打开外部应用」的方法

Linux 下解决抖音网页端反复弹出「打开外部应用」的方法

  • 2026-09-09 18:54:54
Linux 下解决抖音网页端反复弹出「打开外部应用」的方法

最近在 Fedora(GNOME + Wayland)环境下遇到了一个比较烦人的问题。

浏览器(Flatpak版的Chromium)访问抖音网页时,页面会尝试调用自定义协议,例如:

bytedance://...bitbrowser://...

如果系统中没有对应应用,每次重新打开抖音页面都会弹出"选择应用程序"或"打开外部应用"的窗口,影响使用体验。


问题原因

抖音网页会尝试打开:

bytedance://bitbrowser://

这类 URI 并不是普通网页链接(https://),而是 自定义协议(Custom URI Scheme)。

浏览器允许后,会调用:

xdg-desktop-portal        ↓org.freedesktop.portal.OpenURI        ↓Linux MIME Handler

如果系统没有对应 handler,就可能不断弹出选择应用程序的窗口。


解决方案

① 创建一个空的 Handler

在:

~/.local/share/applications/

新建文件:

null-handler.desktop

内容如下:

[Desktop Entry]Name=Null HandlerType=ApplicationExec=trueNoDisplay=trueMimeType=x-scheme-handler/bytedance;x-scheme-handler/bitbrowser;
其中:
Exec=true

表示什么也不做,立即退出。


② 更新 Desktop Database

执行:

update-desktop-database ~/.local/share/applications
这一步非常重要。

它会扫描当前目录所有 .desktop 文件中的:

MimeType=

字段,并生成:

~/.local/share/applications/mimeinfo.cache

之后系统就知道:

x-scheme-handler/bytedance        ↓null-handler.desktop

完成后,抖音再次尝试打开:

bytedance://...

系统会直接调用:

null-handler.desktop

因为:

Exec=true

程序立即结束,因此不会再弹出选择应用程序窗口。


最开始以为需要修改:

~/.config/mimeapps.list

例如填加:

[Default Applications]x-scheme-handler/bytedance=null-handler.desktopx-scheme-handler/bitbrowser=null-handler.desktop

后来实验发现:

删除这两行以后,拦截依然有效。

说明真正起作用的并不是这里。

真正关键的是:

null-handler.desktop        ↓update-desktop-database        ↓mimeinfo.cache

也就是说,只要系统已经把 null-handler.desktop 注册成了对应协议的合法 Handler,GNOME 在很多情况下就能够直接找到它。


Chromium 自己还有一套权限

浏览器第一次遇到:

bytedance://...

通常会询问:

是否允许此网站打开外部应用?

如果勾选:

始终允许

Chromium 会把这个权限写入 Profile 中名为Preferences的文件中(Profile的位置可通过访问chrome://version 查找Profile Path)

例如:

"protocol_handler": {    "allowed_origin_protocol_pairs": {        "https://www.douyin.com": {            "bytedance": true        }    }}

它表示:

www.douyin.com        │        └── 可以直接调用 bytedance://

这是 浏览器自己的权限管理,和 Linux MIME 系统是两回事。

如果想恢复第一次询问,只需要关闭浏览器,删除对应的:

protocol_handler.allowed_origin_protocol_pairs

即可。

最新文章

随机文章