// 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();
}