Search code examples
iosobjective-cnsurlios10

openURL: deprecated in iOS 10


Apple with iOS 10 has deprecated openURL: for openURL:option:completionHandler If I have:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com"]];

How it will become? options:<#(nonnull NSDictionary<NSString *,id> *)#> in detail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com"] options:<#(nonnull NSDictionary<NSString *,id> *)#> completionHandler:nil];

Thanks

Update options:@{} For empty dictionary with no key and value http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl/


Solution

  • Write like this.

    Handle completionHandler

    UIApplication *application = [UIApplication sharedApplication];
    NSURL *URL = [NSURL URLWithString:@"http://www.google.com"];
    [application openURL:URL options:@{} completionHandler:^(BOOL success) {
        if (success) {
             NSLog(@"Opened url");
        }
    }];
    

    Without handling completionHandler

    [application openURL:URL options:@{} completionHandler:nil];
    

    Swift Equivalent:- open(_:options:completionHandler:)

    UIApplication.shared.open(url)