最近做了一个内部系统,由于不熟悉web技术,js、css这些,采用了wasm类似桌面程序的方式。以前只是听闻Qt可以编译到wasm,这次真的用上了。有几个坑:首先是剪贴板操作,chrome和firefox这些主流浏览器只是针对可信网页(必须有合法的https证书)才可申请剪贴板权限(主要是读取系统剪贴板内容),这个内部应用由于各种原因只能以http方式部署。Qt for wasm本身的的剪贴板实现也不是很完善。最后hack了两边,包括浏览器跳过对可信内容的检测,对http的有关浏览器权限的registry预设的更改;qt这边改了几行代码,最后完善了http下的剪贴板功能。代价是必须用我hack过的浏览器,当然这是内网应用,并不是什么难事,而且这个浏览器可以作为主浏览器做日常之用。另外还有sql支持,采用了随用随下载若干sqlite数据库,然后再deserialize到内存中,配合Qt的sqlmodel做查询展示很不错,对于一个只查询而不会写入数据库的应用来说足够了。