I can't connect to the test wizard

Prev Next

I cannot connect to the test wizard. When I click the prompt after scanning the QR code, my iOS device is not recognized.

You are experiencing this issue due to the customized open URL handlers. Insider has its own method to handle open URLs once the method is natively triggered.

If you have any customization on your end, these methods should include Insider’s handleURL method for the SDK to function correctly.

Let’s say you have a method declared in AppDelegate as follows:

override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
            /* random code inserted to override the openURL method start */
            eventChannel?.setStreamHandler(linkStreamHandler)
            return linkStreamHandler.handleLink(url.absoluteString)
            /* random code inserted to override openURL method end */
        }

It will handle the methods associated with the code base, but will not function properly for the Insider SDK to proceed further. 

If you want to override the openURL methods, check the source of the URI and handle it accordingly.

Insider URL has its own markage in the scheme value of the URI as follows:
url.scheme == "insiderpartnername"

Let’s say your partner name is Control. Insider’s URL scheme will be as follows:
url.sceheme == “insiderControl”

If you want to modify the example above based on your needs, you can apply a function as follows (assuming that your partner name is Control):

override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {             if let scheme = url.scheme, scheme.contains("insiderControl") 
{                 
Insider.handle(url)                 
return true             
}
(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
   if ([[url scheme] containsString:@"insider"]) {
    [Insider handleUrl:url];
   }
   return TRUE;
}