[ Technical exchange] deepin 原生应用开发求助!!!
Tofloor
poster avatar
suketool
deepin
2025-10-20 20:18
Author

业余时间为 deepin 开发了一款下载工具,程序功能基本完成,但是最终需要打包的时候整不会了!!!下面放一张主界面:

image.png

当前遇到如下问题,希望有懂行的大牛解释一下:

  1. 浏览器需要安装插件以调用我写的下载工具,已经实现通过Native Message 调用。但是,发现玲珑应用版本的浏览器,都识别不到注册的 json 文件!!! 而deb 版本的chrome 却可以。josn 文件放到 ~/.config/brower/NativeMessagingHosts 和 ~/.config/google-chrome/NativeMessagingHosts 等目录下,可是 如意玲珑版本的浏览器都不行,是否涉及到权限或者如意玲珑目录重定向?

  2. 为了支持 NativeMessage 协议,需要到浏览器的对应目录中放注册文件,可是根据打包规范,貌似不允许这么做,我该怎么实现这个协议文件的放置?

  3. 应用数据,代码里使用 qt标准的路径,我看和 XDG_DATA_HOME 路径一致,卸载应用的时候,数据文件会一并被删除吗?如果不会,残留着不是制造系统垃圾吗?

  4. 应用的 log 应该输出到哪个目录?卸载时会删除吗?

    当前主要面临以上问题,解决了就能出第一个版本包,懂行的大神麻烦指导一点

Reply Favorite View the author
All Replies
流星追月
deepin
2025-10-20 22:01
#1

比较的难,而且全部开发好,争议很大,功能强大的话,对一些商业公司冲击比较大。

砸人饭碗犹如sha人 父母。

Reply View the author
Ziggy
deepin
2025-10-20 22:09
#2

有几个问题需要你这边一起来讨论下,看看能不能缩小可能的问题范围

  1. 这是独立的二进制图形化程序还是chromium核心浏览器的crx插件?
  2. 识别不到注册的 json 文件,这个是有代码层报错还是你出现什么现象下意识怀疑这个问题?\
  3. 即便是玲珑容器里的应用,data也是遵循XDG规范的,一般在~/.config下,不太可能存在所述的情况

综上,最好有情报标明是有明确报错关于json文件检测异常亦或是无法通过浏览器调起你的软件。这两种情况应该分开讨论

Reply View the author
mozixun
Moderator
2025-10-20 22:11
#3
  1. 有可能是deepin浏览器自身问题,玲珑目前对于XDG_CONFIG_HOME也就是~/.config是可以访问的
  2. 放置在~/.config下理论是能被chromium识别
  3. 没这么做是防止你安装回来时数据一并没了,正常情况你打包成deb包在postrm或者prerm里删除对应数据目录即可,而玲珑在之后会做目录访问控制,目前没做这个功能,仍然会产生垃圾
  4. log建议直接生成到/tmp重启丢掉
Reply View the author
suketool
deepin
2025-10-21 08:56
#4
Ziggy

有几个问题需要你这边一起来讨论下,看看能不能缩小可能的问题范围

  1. 这是独立的二进制图形化程序还是chromium核心浏览器的crx插件?
  2. 识别不到注册的 json 文件,这个是有代码层报错还是你出现什么现象下意识怀疑这个问题?\
  3. 即便是玲珑容器里的应用,data也是遵循XDG规范的,一般在~/.config下,不太可能存在所述的情况

综上,最好有情报标明是有明确报错关于json文件检测异常亦或是无法通过浏览器调起你的软件。这两种情况应该分开讨论

1.下载程序时qt开发的二进制程序,配套开发的有 chrome 的 crx 插件,插件通过 NativeMessage 机制和二进制程序通信,目前 deepin 和玲珑版本的chrome,浏览器报 specified native messaging host not found。而换成商店的 deb 版本chrome,deb版本的360浏览器,一切正常,所以怀疑玲珑应用的问题,具体浏览器为何识别不到文件,不知道怎么调试浏览器。

  1. 错误是插件调用浏览器NativeMessage接口,浏览器报的错误specified native messaging host not found,很明显,同一个注册文件,deb版本chrome浏览器和360浏览器能识别,玲珑版本的识别不到。
Reply View the author
suketool
deepin
2025-10-21 09:00
#5
流星追月

比较的难,而且全部开发好,争议很大,功能强大的话,对一些商业公司冲击比较大。

砸人饭碗犹如sha人 父母。

这个系统上有商业公司正儿八经的做吗?感觉要么没做,要么就象征性的出个版本就不管了。用户少,没有动力适配,也许是个人开发者的机会吧。

Reply View the author
suketool
deepin
2025-10-21 09:05
#6
mozixun
  1. 有可能是deepin浏览器自身问题,玲珑目前对于XDG_CONFIG_HOME也就是~/.config是可以访问的
  2. 放置在~/.config下理论是能被chromium识别
  3. 没这么做是防止你安装回来时数据一并没了,正常情况你打包成deb包在postrm或者prerm里删除对应数据目录即可,而玲珑在之后会做目录访问控制,目前没做这个功能,仍然会产生垃圾
  4. log建议直接生成到/tmp重启丢掉

测试了自带的浏览器和玲珑版chrome浏览器,怎么都识别不到,最后突然意识到可能是玲珑应用的问题。然后在商店里换 deb 版本的 chrome 和 360 浏览器,都可以正常通信,所以认为玲珑应用的问题。

另外商店审核规范,deb 版本的安装目录规定死了,不允许使用安装卸载脚本,玲珑应用没有这个规定?

Reply View the author
Ziggy
deepin
2025-10-21 09:40
#7
suketool

1.下载程序时qt开发的二进制程序,配套开发的有 chrome 的 crx 插件,插件通过 NativeMessage 机制和二进制程序通信,目前 deepin 和玲珑版本的chrome,浏览器报 specified native messaging host not found。而换成商店的 deb 版本chrome,deb版本的360浏览器,一切正常,所以怀疑玲珑应用的问题,具体浏览器为何识别不到文件,不知道怎么调试浏览器。

  1. 错误是插件调用浏览器NativeMessage接口,浏览器报的错误specified native messaging host not found,很明显,同一个注册文件,deb版本chrome浏览器和360浏览器能识别,玲珑版本的识别不到。

是否可以把json、crx和gui app的二进制提供下?

Reply View the author
suketool
deepin
2025-10-21 09:50
#8
Ziggy

是否可以把json、crx和gui app的二进制提供下?

可以

Reply View the author
流星追月
deepin
2025-10-21 10:55
#9
suketool

这个系统上有商业公司正儿八经的做吗?感觉要么没做,要么就象征性的出个版本就不管了。用户少,没有动力适配,也许是个人开发者的机会吧。

问题就在这里,等你发展起来了,准备做大做强的时候,迅雷,迅雷云盘会员也来了,到时候资金对轰?个人很难应付的,除非你的用户几何级增长。

在deepin系统里,目前最缺的就是游戏,休闲小游戏,有小团队的话,可以开发一些有特色的小游戏,比如像消消乐,植物大战僵尸,还有目前很火的小鸭冲啊类似的休闲射击游戏,卖卖装备,卖卖皮肤,有一定的护城河,而且可以在deepin商店立马打响知名度,广告费也节省了。

这是目前个人开发者在deepin最能火的方式,也是人生第一桶金的希望!

Reply View the author
流星追月
deepin
2025-10-21 10:55
#10
It has been deleted!
suketool
deepin
2025-10-21 15:51
#11
流星追月

问题就在这里,等你发展起来了,准备做大做强的时候,迅雷,迅雷云盘会员也来了,到时候资金对轰?个人很难应付的,除非你的用户几何级增长。

在deepin系统里,目前最缺的就是游戏,休闲小游戏,有小团队的话,可以开发一些有特色的小游戏,比如像消消乐,植物大战僵尸,还有目前很火的小鸭冲啊类似的休闲射击游戏,卖卖装备,卖卖皮肤,有一定的护城河,而且可以在deepin商店立马打响知名度,广告费也节省了。

这是目前个人开发者在deepin最能火的方式,也是人生第一桶金的希望!

你说的很有道理,个人开发者只有在大公司看不到或者看不上的角落里找机会。当能引起他们注意的时候直接就完了。

现在只是下班没事的时候干一点,先踏出一步看看

Reply View the author