flathub / com.qq.QQ

https://flathub.org/apps/details/com.qq.QQ
16 stars 18 forks source link

GNOME 桌面环境下 QQ 频道功能与 xdg-desktop-portal-gnome 的兼容性问题 #12

Closed taoky closed 1 year ago

taoky commented 1 year ago

打开频道功能时,QQ 似乎会多次打开以 "jsbridge://" 开头的 URL,在 Flatpak 环境下会触发 portal 的 org.freedesktop.portal.OpenURI.OpenURI。GNOME 桌面环境下 xdg-desktop-portal-gnome 会弹出大量的「未找到应用」的弹窗。

Screenshot from 2022-12-31 02-38-16

Screenshot from 2022-12-31 02-38-05

并且在后台(最小化)每运行一段时间,QQ 似乎都会再去访问 "jsbridge://" 的 URL,导致用户被弹窗打扰。

我没有找到能让启动的程序使用其他 portal 的方法,Flatpak 目前亦不提供关闭 portal 的选项

taoky commented 1 year ago

一个可能有效的 workaround:

  1. 创建 ~/.local/share/applications/JSBridge.desktop 如下:

    [Desktop Entry]
    Name=JSBridge
    Exec=echo %u
    Type=Application
    Terminal=false
    MimeType=x-scheme-handler/jsbridge;
  2. 可能需要运行 sudo update-desktop-database
  3. 编辑 ~/.config/mimeapps.list,在 [Default Applications] 里加入 x-scheme-handler/jsbridge=JSBridge.desktop,在 [Added Associations] 里加入 x-scheme-handler/jsbridge=JSBridge.desktop;
  4. 验证:以下命令 portal 不弹出窗口

    gdbus call --session \
        --dest org.freedesktop.portal.Desktop \
        --object-path /org/freedesktop/portal/desktop \
        --method org.freedesktop.portal.OpenURI.OpenURI \
        "" "jsbridge://114514" {}

这么做 Applications 里面会多出一个 JSBridge,把它拖到文件夹里让它看不到就行(

ZhaoZuohong commented 1 year ago

@taoky 在desktop entry里加上一行NoDisplay=true就可以不显示了

chenzhiwei commented 1 year ago

谁能提个PR不?我手机操作不方便。

xz-dev commented 1 year ago

谁能提个PR不?我手机操作不方便。

具体应该要 PR 什么呢

pugaizai commented 1 year ago

19 似乎把这个问题也解决了

chenzhiwei commented 1 year ago

还有谁能确认一下不?确认这个问题解决了是就关掉这个issue了。

chenzhiwei commented 1 year ago

该问题已经解决