Solução para 14.04 (fácil, somente QML)
O código QML a seguir funcionará no 14.04 somente porque requer Qt >= 5.1
(e o Trusty fornece 5.2.1
).
Você pode ter um arquivo .desktop
contendo:
Exec=/usr/bin/qmlscene %U /path/to/your/qml-app/myapp.qml
MimeType=x-scheme-handler/myapp
e use Qt.application.arguments[1]
para receber o conteúdo da URL.
Solução para 13.10 (requer C ++)
O arquivo .desktop é muito semelhante ao anterior, mas aqui qmlscene
é substituído pelo nome do seu aplicativo:
Exec=/path/to/your/binary_app %U
MimeType=x-scheme-handler/myapp
Para 13.10, você terá que usar algum C ++ e analisar os argumentos usando esse tipo de aplicativo:
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QQmlContext>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
// Register the URL with the QML runtime
viewer.rootContext()->setContextProperty("url", app.arguments().at(1));
// Now, load the main page
viewer.setMainQmlFile(QStringLiteral("qml/myapp.qml"));
viewer.showExpanded();
return app.exec();
}
Você poderá obter o URL do QML graças a setContextProperty ().
Visite Como incorporar objetos C ++ ao QML com propriedades de contexto para obter mais detalhes.