objective c - fondo - ¿Alerta de inicio de sesión con el marco de Twitter en iOS5?
como cambiar el fondo de twitter 2018 (4)
Como todos sabrán, desde iOS5 existe un marco de Twitter nativo que facilita la publicación de tweets desde su aplicación.
¿Hay alguna manera de solicitar una alerta que reenvía al usuario a la aplicación de configuración y solicitar el nombre de usuario y la contraseña?
Sé que podría resolver el problema con el siguiente código:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
Pero ese es el código no documentado ...
Gracias por adelantado
Saludos Billy (Mi primera publicación en SO)
En iOS5.1, deberíamos usar TWTweetComposeViewController para mostrar el cuadro de diálogo, ya que Apple rechaza las aplicaciones usando prefs: root = TWITTER.
Pero no me gustó mostrar la pantalla y el teclado del tweet
así que descubrí la forma de ocultarlos, pero muestro la pantalla emergente.
ACTUALIZACIÓN: Apple aprobó mi aplicación utilizando este truco.
TWTweetComposeViewController *viewController = [[TWTweetComposeViewController alloc] init];
//hide the tweet screen
viewController.view.hidden = YES;
//fire tweetComposeView to show "No Twitter Accounts" alert view on iOS5.1
viewController.completionHandler = ^(TWTweetComposeViewControllerResult result) {
if (result == TWTweetComposeViewControllerResultCancelled) {
[self dismissModalViewControllerAnimated:NO];
}
};
[self presentModalViewController:viewController animated:NO];
//hide the keyboard
[viewController.view endEditing:YES];
//this approach doesn''t work since you can''t jump to settings
// [self dismissModalViewControllerAnimated:NO];
No es posible, aunque debería solicitar automáticamente al usuario que inicie sesión, si el usuario aún no ha iniciado sesión.
A partir de iOS 5.1
esa característica se ha eliminado, como se ve aquí
No necesita implementar esto, si configura su integración de Twitter para hacer una publicación en Twitter y iOS detecta que no hay una cuenta de Twitter configurada, ¡lo hará automáticamente por usted!
Esta es una captura de pantalla de una de mis aplicaciones que se ejecuta en mi iPhone 4S en iOS 5.1
La eliminación de los enlaces de Preferencias se refiere a las acciones personalizadas del desarrollador, como en el enlace a su propio menú de preferencias. Esto no se aplica porque Twitter no es solo una función incorporada de iOS 5, sino que el UIAlertView que aparece para notificarte no es manejado por el desarrollador, es una función automática de iOS.
Aquí encontré el camino:
Muestra una alerta personalizada si no se ha configurado una cuenta de twitter en la configuración de tu dispositivo:
if (![TWTweetComposeViewController canSendTweet]) {
UIAlertView *alertViewTwitter = [[[UIAlertView alloc]
initWithTitle:@"No Twitter Accounts"
message:@"There are no Twitter accounts configured. You can add or create a Twitter account in Settings."
delegate:self
cancelButtonTitle:@"Settings"
otherButtonTitles:@"Cancel",nil] autorelease];
[alertViewTwitter show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex==0) {
TWTweetComposeViewController *ctrl = [[TWTweetComposeViewController alloc] init];
if ([ctrl respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
[(id <UIAlertViewDelegate>)ctrl alertView:alertView
clickedButtonAtIndex:0];
}
[ctrl release];
}
}
Espero que esto tenga sentido :)