OpenURL in iOS10 OpenURL in iOS10 ios ios

OpenURL in iOS10


Swift 3+:

func open(scheme: String) {   if let url = URL(string: scheme) {      if #available(iOS 10, *) {         UIApplication.shared.open(url, options: [:],           completionHandler: {               (success) in                  print("Open \(scheme): \(success)")           })     } else {         let success = UIApplication.shared.openURL(url)         print("Open \(scheme): \(success)")     }   } }

Usage:

open(scheme: "tweetbot://timeline")

Source


A quick fix:

// Objective-CUIApplication *application = [UIApplication sharedApplication];[application openURL:URL options:@{} completionHandler:nil];// SwiftUIApplication.shared.open(url, options: [:], completionHandler: nil)

A complete answer:

http://useyourloaf.com/blog/openurl-deprecated-in-ios10/

Credits: Keith Harrison (useyourloaf.com)


An empty options dictionary will result in the same behaviour as openUrl.

Otherwise:

+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+| UIApplicationOpenURLOptionsSourceApplicationKey | NSString containing the bundle ID of the originating application                                                                             |+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+| UIApplicationOpenURLOptionsAnnotationKey        | property-list typed object corresponding to what the originating application passed in UIDocumentInteractionController's annotation property |+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+| UIApplicationOpenURLOptionsOpenInPlaceKey       | bool NSNumber, set to YES if the file needs to be copied before use                                                                          |+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+

From UIApplication.h

// Options are specified in the section below for openURL options. An empty options dictionary will result in the same// behavior as the older openURL call, aside from the fact that this is asynchronous and calls the completion handler rather// than returning a result.// The completion handler is called on the main queue.- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");UIKIT_EXTERN UIApplicationOpenURLOptionsKey const UIApplicationOpenURLOptionsSourceApplicationKey NS_SWIFT_NAME(sourceApplication) NS_AVAILABLE_IOS(9_0);   // value is an NSString containing the bundle ID of the originating applicationUIKIT_EXTERN UIApplicationOpenURLOptionsKey const UIApplicationOpenURLOptionsAnnotationKey NS_SWIFT_NAME(annotation) NS_AVAILABLE_IOS(9_0);   // value is a property-list typed object corresponding to what the originating application passed in UIDocumentInteractionController's annotation propertyUIKIT_EXTERN UIApplicationOpenURLOptionsKey const UIApplicationOpenURLOptionsOpenInPlaceKey NS_SWIFT_NAME(openInPlace) NS_AVAILABLE_IOS(9_0);   // value is a bool NSNumber, set to YES if the file needs to be copied before use