在萌梦中加入类似小程序的功能



  • 萌梦是基于 Qt 的 QML 开发的程序,有流量的基础,那么在流量的基础上引入一个类似小程序的功能,如何呢?小程序可以使用QML进行实现,在此基础上做到版本更新,网络加载等等~
    @jcy



  • 要实现类似的小程序功能,我们需要做一些处理,例如禁止小程序调用 Qt.quit() 退出程序,这是一个十分主要的功能。

    看到 Qt 中的文档,是这么写的:

    This function causes the QQmlEngine::quit() signal to be emitted. Within the Prototyping with qmlscene, this causes the launcher application to exit; to quit a C++ application when this method is called, connect the QQmlEngine::quit() signal to the QCoreApplication::quit() slot.

    所以只要先用 QObject::disconnect 进行移除就行了。

        //! disconnect Qt.quit and QCoreApplication::quit
        QObject::disconnect(&engine, SIGNAL(quit()),
                            QCoreApplication::instance(), SLOT(quit()));
    

    接下来就是实现小程序的退出功能,以及主程序的退出功能了。
    @jcy



  • @qyvlik 我们也是这么规划的,目前的想法是,将我们的架构更新,从依赖Qt Quick Controls 转化为依赖Qt Quick Controls 2,这样才更加适合移动端的使用。



  • @jiangcaiyang 加油,我继续探索小程序的技术实现~



  • @qyvlik 我们还在继续探索中,如果能有更好现实生活中的价值的话,我们会义无反顾地进行Qt小程序的开发的。



  • @qyvlik 要不,我们一起来做一个这样的功能?



  • @jiangcaiyang123 哎呀,太晚看到了。可以的~我们可以先讨论一下小程序的立项基础,例如技术,支持的平台,等等~



  • @jiangcaiyang123 或者我们写一个类似 qmlscene 的程序,每个小程序都用程序单例的方式启动。可以加载 dll,so 插件。



  • @qyvlik 不知道你是使用什么平台的,据我所知,不同平台的要求不一样。这里我们有详细的讨论。



  • @jiangcaiyang123 看看这篇安老师写的文章: QtAndroid详解(2):startActivity和它的小伙伴们,Qt For Android 中可以启动一个 Activity,这么说的话,就可以做到启动小程序了~



  • @qyvlik 这个当然了。启动任何一个大程序都可以的,不过呢,我们倾向于将QML作为网页,进行渲染。



  • @jiangcaiyang123 QML Browser~



  • @qyvlik 不过如果是要调用本地功能的话,我们还是可以借助C++强大的功能实现的。


登录后回复
 

与 萌梦社区 的连接断开,我们正在尝试重连,请耐心等待