From a9143178707a2f243515bc2b8474b79d691e07ad Mon Sep 17 00:00:00 2001 From: Niklas Merz Date: Tue, 31 Dec 2019 11:49:20 +0100 Subject: [PATCH] Fix extension crash on iOS 13 (#69) * Fix extension crash on iOS 13 * Fix UISceneOpenExternalURLOptions init * iOS 13 version check --- src/ios/ShareExtension/ShareViewController.m | 31 ++++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/ios/ShareExtension/ShareViewController.m b/src/ios/ShareExtension/ShareViewController.m index 409a0f3..3fc2d75 100644 --- a/src/ios/ShareExtension/ShareViewController.m +++ b/src/ios/ShareExtension/ShareViewController.m @@ -88,18 +88,31 @@ - (void) openURL:(nonnull NSURL *)url { NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature]; // Arguments - NSDictionary *options = [NSDictionary dictionary]; void (^completion)(BOOL success) = ^void(BOOL success) { NSLog(@"Completions block: %i", success); }; - - [invocation setTarget: responder]; - [invocation setSelector: selector]; - [invocation setArgument: &url atIndex: 2]; - [invocation setArgument: &options atIndex:3]; - [invocation setArgument: &completion atIndex: 4]; - [invocation invoke]; - break; + if (@available(iOS 13.0, *)) { + UISceneOpenExternalURLOptions * options = [[UISceneOpenExternalURLOptions alloc] init]; + options.universalLinksOnly = false; + + [invocation setTarget: responder]; + [invocation setSelector: selector]; + [invocation setArgument: &url atIndex: 2]; + [invocation setArgument: &options atIndex:3]; + [invocation setArgument: &completion atIndex: 4]; + [invocation invoke]; + break; + } else { + NSDictionary *options = [NSDictionary dictionary]; + + [invocation setTarget: responder]; + [invocation setSelector: selector]; + [invocation setArgument: &url atIndex: 2]; + [invocation setArgument: &options atIndex:3]; + [invocation setArgument: &completion atIndex: 4]; + [invocation invoke]; + break; + } } } }