Я создал собственный обработчик схемы URI на RedHat Linux, и он работал, как ожидалось. Когда пользователь перенаправляется на пользовательский URI, например: myapp://abcd браузер открывает всплывающее окно запуска приложения, похожее на mailto: handler.
Нелегко было сделать аналогичные шаги в Ubuntu, я пробовал все возможные решения, доступные только, ни один из них не работал.
Вот что я сделал для RedHat, который работал отлично:
Добавить запись в ~/.local/share/applications/mimeapps.list:[Added Associations]
x-scheme-handler/myprotocol=myprotocol-handler.desktop
Добавить myprotocol-handler.desktop в ~/.local/share/applications/myprotocol-handler.desktop: [Desktop Entry]
Version=1.0
Type=Application
Exec=sh -c "$HOME/.my-handler.sh %u"
Icon=
StartupNotify=true
Terminal=false
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
MimeType=x-scheme-handler/myprotocol
Name=My Launcher
Comment=Launch MyProtocol
Создать ~/.my-handler.sh: #!/bin/bash
printf "$code" >> file
xdg-open https://redirect.site.com
I пробовал вышеуказанные шаги на Ubuntu, и он не работает, обработчик схемы работает только для команды xdg-open, он не работает, если я пытаюсь использовать тот же URI в браузере.
Я попробовал следующее местоположения:
~/.config/
~/.local/share/applications/
~/.local/share/applications/packages
sudo update-desktop-database
xdg-mime command
Ни один из подходов не работает должным образом. Может кто-то указать мне в правильном направлении, моя версия Ubuntu - 16.04.4