Mi aplicación se trata de obtener puntos y ganar dinero, y lo que debo hacer es dejar que el usuario comparta mi aplicación y luego darle algunos puntos.
El problema es que no se como detectar si el usuario realmente compartió la app o no
Estoy usando el siguiente código:
func shareTapped(){ let text = "example" let url = URL(string: "example.com") let image = UIImage(named: "example_image") let shareViewController = UIActivityViewController(activityItems: [text, image!, url!] ,applicationActivities: nil) self.present(shareViewController, animated: true, completion: {() in print("done") }) }El método de compartir funciona perfectamente, pero me preguntaba si hay algún delegado al que podamos llamar en esta situación.
Gracias.
Entonces, hay 2 escenarios en los que el usuario puede cancelar compartir.
Una es cuando UIActivityViewController está presente, entonces hay un botón de cancelación en UIActivityViewController desde donde el usuario puede cancelarlo y sí, puede detectarlo con el método
shareViewController.completionWithItemsHandler = { activity, completed, items, error in } En el método anterior, completed será false si el usuario canceló desde el botón de cancelación de UIActivityViewController . y devolverá true si el usuario comparte con éxito, pero aquí viene el segundo caso.
Entonces, para el segundo caso, suponga que el usuario desea compartir a través de Watsapp y haga clic en el ícono de Watsapp desde UIActivityViewController y aparecerá la lista de usuarios de Watsapp.
Pero hay un botón de cancelar en esa pantalla desde donde el usuario puede cancelar el uso compartido, pero aún así obtendrá el indicador completed como true , por lo que no hay forma de que pueda detectar si el usuario hace clic en el botón cancel de la lista de usuarios de watsapp.