Adapt the implementation of QDesktopService on iOS to Android

Change-Id: I8c2048155c5c065b5cdf7ad4cef9d8a446a0561d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Lars Schmertmann 2021-08-27 14:07:39 +02:00
parent 34f29e5749
commit dca394096f

View File

@ -42,6 +42,7 @@
#include <QtCore/qurl.h>
#include <QtCore/qdebug.h>
#include <QtCore/private/qcore_mac_p.h>
#include <QtCore/qscopedvaluerollback.h>
#include <QtGui/qdesktopservices.h>
@ -56,6 +57,7 @@ bool QIOSServices::openUrl(const QUrl &url)
return false;
}
// avoid recursing back into self
if (url == m_handlingUrl)
return false;
@ -94,16 +96,12 @@ bool QIOSServices::openDocument(const QUrl &url)
/* Callback from iOS that the application should handle a URL */
bool QIOSServices::handleUrl(const QUrl &url)
{
QUrl previouslyHandling = m_handlingUrl;
m_handlingUrl = url;
QScopedValueRollback<QUrl> rollback(m_handlingUrl, url);
// FIXME: Add platform services callback from QDesktopServices::setUrlHandler
// so that we can warn the user if calling setUrlHandler without also setting
// up the matching keys in the Info.plist file (CFBundleURLTypes and friends).
bool couldHandle = QDesktopServices::openUrl(url);
m_handlingUrl = previouslyHandling;
return couldHandle;
return QDesktopServices::openUrl(url);
}
QT_END_NAMESPACE