Enable Universal Links on iOS
Pick-to: 5.15 Change-Id: I05b5bede49f619576dd9ab37444f7cb5fe0f15f0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
4683b0b57f
commit
1b7589a25c
@ -96,3 +96,25 @@ QDesktopServices::storageLocation(QDesktopServices::DataLocation)
|
|||||||
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
|
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
|
||||||
"/data/organization/application"
|
"/data/organization/application"
|
||||||
//! [6]
|
//! [6]
|
||||||
|
|
||||||
|
//! [7]
|
||||||
|
<key>com.apple.developer.associated-domains</key>
|
||||||
|
<array>
|
||||||
|
<string>applinks:your.domain.com</string>
|
||||||
|
</array>
|
||||||
|
//! [7]
|
||||||
|
|
||||||
|
//! [8]
|
||||||
|
{
|
||||||
|
"applinks": {
|
||||||
|
"apps": [],
|
||||||
|
"details": [{
|
||||||
|
"appIDs" : [ "ABCDE12345.com.example.app" ],
|
||||||
|
"components": [{
|
||||||
|
"/": "/help",
|
||||||
|
"?": { "topic": "?*"}
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//! [8]
|
||||||
|
@ -250,6 +250,23 @@ bool QDesktopServices::openUrl(const QUrl &url)
|
|||||||
|
|
||||||
For more information, see the Apple Developer Documentation for
|
For more information, see the Apple Developer Documentation for
|
||||||
\l{https://developer.apple.com/documentation/uikit/core_app/allowing_apps_and_websites_to_link_to_your_content/communicating_with_other_apps_using_custom_urls?language=objc}{Communicating with Other Apps Using Custom URLs}.
|
\l{https://developer.apple.com/documentation/uikit/core_app/allowing_apps_and_websites_to_link_to_your_content/communicating_with_other_apps_using_custom_urls?language=objc}{Communicating with Other Apps Using Custom URLs}.
|
||||||
|
\warning It is not possible to claim support for some well known URL schemes, including http and https. This is only allowed for Universal Links.
|
||||||
|
|
||||||
|
To claim support for http and https the above entry in the Info.plist file
|
||||||
|
is not allowed. This is only possible when you add your domain to the
|
||||||
|
Entitlements file:
|
||||||
|
|
||||||
|
\snippet code/src_gui_util_qdesktopservices.cpp 7
|
||||||
|
|
||||||
|
iOS will search for /.well-known/apple-app-site-association on your domain,
|
||||||
|
when the application is installed. If you want to listen to
|
||||||
|
https://your.domain.com/help?topic=ABCDEF you need to provide the following
|
||||||
|
content there:
|
||||||
|
|
||||||
|
\snippet code/src_gui_util_qdesktopservices.cpp 8
|
||||||
|
|
||||||
|
For more information, see the Apple Developer Documentation for
|
||||||
|
\l{https://developer.apple.com/documentation/safariservices/supporting_associated_domains_in_your_app}[Supporting Associated Domains}.
|
||||||
|
|
||||||
If setUrlHandler() is used to set a new handler for a scheme which already
|
If setUrlHandler() is used to set a new handler for a scheme which already
|
||||||
has a handler, the existing handler is simply replaced with the new one.
|
has a handler, the existing handler is simply replaced with the new one.
|
||||||
|
@ -50,6 +50,26 @@
|
|||||||
|
|
||||||
@implementation QIOSApplicationDelegate
|
@implementation QIOSApplicationDelegate
|
||||||
|
|
||||||
|
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> *restorableObjects))restorationHandler
|
||||||
|
{
|
||||||
|
Q_UNUSED(application);
|
||||||
|
Q_UNUSED(restorationHandler);
|
||||||
|
|
||||||
|
if (!QGuiApplication::instance())
|
||||||
|
return NO;
|
||||||
|
|
||||||
|
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
|
||||||
|
QIOSIntegration *iosIntegration = QIOSIntegration::instance();
|
||||||
|
Q_ASSERT(iosIntegration);
|
||||||
|
|
||||||
|
QIOSServices *iosServices = static_cast<QIOSServices *>(iosIntegration->services());
|
||||||
|
|
||||||
|
return iosServices->handleUrl(QUrl::fromNSURL(userActivity.webpageURL));
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
|
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
|
||||||
{
|
{
|
||||||
Q_UNUSED(application);
|
Q_UNUSED(application);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user