Abrir mi aplicación desde mi extensión de teclado en swift 3.0
Estoy intentando abrir desde mi extensión de teclado. Tengo un teclado personalizado y agregué ese teclado desde la configuración. En mi teclado personalizado hay un botón "Mostrar más", y quiero abrir mi aplicación haciendo clic en este botón.
Así que he intentado el siguiente código:
let context = NSExtensionContext()
context.open(url! as URL, completionHandler: nil)
var responder = self as UIResponder?
while (responder != nil) {
if responder?.responds(to: Selector("openURL:")) == true {
responder?.perform(Selector("openURL:"), with: url)
}
responder = responder!.next
}
Está funcionando con éxito, pero como sabemos de manera rápidaSelector("method_name:")
está en desuso y uso#selector(classname.methodname(_:))
en su lugar, entonces está dando advertencia. Y quiero resolver esa advertencia. Así que lo intenté como Xcode sugirió automáticamente:
if responder?.responds(to: #selector(UIApplication.openURL(_:))) == true {
responder?.perform(#selector(UIApplication.openURL(_:)), with: url)
}
También probé:
if responder?.responds(to: #selector(NSExtensionContext.open(_:))) == true {
responder?.perform(#selector(NSExtensionContext.open(_:)), with: url)
}
También he probado otras formas posibles, pero no tuve suerte. Si alguien sabe cómo hacerlo, hágamelo saber.
Remití este enlace, la respuesta de Julio Bailón: