Jump to content

Qt for HarmonyOS/qtohosextras doc/Open Link Example - main.cpp

From Qt Wiki
Revision as of 06:03, 17 September 2026 by Shawn Luo (talk | contribs) (Drop manual breadcrumb, MediaWiki renders it automatically (QTFOROH-2307))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Open Link Example - main.cpp

 // Copyright (C) 2025 The Qt Company Ltd.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

 #include <QApplication>
 #include <QCheckBox>
 #include <QLineEdit>
 #include <QMessageBox>
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWidget>
 #include <QtOhosExtras>

 QLayout *createMainLayout()
 {
     auto *layout = new QVBoxLayout;

     auto *url = new QLineEdit("https://www.example.com");
     auto *appLinkingOnly = new QCheckBox("App Linking Only");
     auto *openLinkButton = new QPushButton("Open App Link");

     layout->addWidget(url);
     layout->addWidget(appLinkingOnly);
     layout->addWidget(openLinkButton);

     QObject::connect(
         openLinkButton, &QPushButton::clicked, openLinkButton,
         [url, appLinkingOnly]() {
             auto abilityContext = QtOhosExtras::QOhosAbilityContext::getDefaultInstance();
             auto openLinkOptions = QtOhosExtras::createOpenLinkOptions();
             openLinkOptions->setAppLinkingOnly(appLinkingOnly->isChecked());
             if (!abilityContext->tryOpenLink(url->text(), *openLinkOptions)) {
                 QMessageBox::warning(nullptr, "Failed", "Opening the link failed!");
             }
         });

     return layout;
 }

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QWidget window;
     window.setWindowTitle(QLatin1String("Open App Link example"));
     window.setMinimumWidth(800);
     window.setLayout(createMainLayout());
     window.show();

     return app.exec();
 }