Compartiendo contenidos en Twitter y Facebook

PRINCIPALES DIFERENCIAS COMPARTIENDO EN PLATAFORMAS ANDROID, IOS Y WINDOWS

Recientemente hemos comenzado a trabajar en tareas de desarrollo móvil relacionadas con acciones comunes con el objetivo de conocerlas a fondo y, ya de paso, encontrar las diferencias entre las plataformas usadas más habitualmente: Android, iOS y Windows 8.1 (Universal).

Como un pequeño adelanto aquí os traemos un artículo sobre la compartición de contenidos en las redes sociales.

IOS

(por REBECA MARTÍN DE LEÓN)

En la plataforma iOS usamos Social framework;de esta manera podremos usar los View Controllers por defecto:

facebook twitter

Usaremos la clase SLComposeViewController,estableciendo el service type.

Al principio es necesario comprobar si estos servicios están disponibles en el módulo de Settings del dispositivo:

if SLComposeViewController.isAvailableForServiceType(serviceType) {}

Donde serviceType será:

  • SLServiceTypeFacebook (Facebook), or
  • SLServiceTypeTwitter (Twitter).

Así pues, si el usuario tiene ya registrada su cuenta de Twitter/Facebook en Settings, será capaz de publicar en dichas redes. En caso contrario, mostramos un error informando de la necesidad de estar registrado para publicar contenidos.

Si el servicio está disponible, mostramos la vista social:

var socialViewController:SLComposeViewController = SLComposeViewController(forServiceType: serviceType)

Se puede completar con parámetros adicionales, como podría ser el mensaje inicial:

socialViewController.setInitialText(initialText)

En los ejemplos de arriba: I’m sharing with Facebook/Twitter in this sample app

O usando una imagen:

socialViewController.addImage(UIImage(named:imageName))

¡Y ya está! De este modo podemos incluir fácilmente la compartición de contenidos en redes sociales dentro de nuestra app iOS.

Como siempre, es muy recomendable crear un módulo para gestionar todo esto.

ANDROID

(por JOSÉ CARLOS MONTES MARTOS)

Facebook

ATENCIÓN:

Hemos intentado compartir contenidos en Facebook usando los intents de Facebook, pero no pudimos conseguir que los textos o imágenes fueran recibidos por la app de Facebook.

Tras revisar este problema, encontramos que Facebook dejó de soportar esta funcionalidad debido a sus políticas de privacidad tal y como queda reflejado en este bug  https://developers.facebook.com/bugs/332619626816423

Así pues, la única manera de compartir algo será usando el SDK de Facebook.

Usando el SDK de Facebook (https://developers.facebook.com/docs/android):

  • No es necesario tener instalada la aplicación nativa de Facebook.
  • Es necesario identificarse y has de solicitar permiso para publicar la primera vez.

Twitter

Twitter es más flexible que Facebook en este aspecto; nos permite usar Intents o el SDK para compartir contenidos.

Usando Intents

  • Necesario: la aplicación ha de estar instalada (¡por supuesto!)

Usando el SDK (https://dev.twitter.com/twitter-kit/android)

  • Necesario: Has de registrar tu app en fabric.io.
  • La applicación de Twitter no es obligatoria.
    • Si la aplicación de Twitter no está instalada se mostrara un web view.
    • En caso contrario, sin abandonar tu aplicación, usará tu cuenta de Twitter para publicar un tweet, mostrando un diálogo igual que el de la app nativa.
TweetComposer.Builder builder = new TweetComposer.Builder(getActivity()).text("Sharing with Twitter SDK");

WINDOWS UNIVERSAL

(por FERNANDO DE FRANCISCO CANO)

Desde la salida de Windows 8.1 y Windows Phone 8.1 tenemos disponible un nuevo tipo de aplicación: universal, compartiendo código podemos crear aplicaciones para dos plataformas todavía diferentes.

La plataforma de Microsoft permite compartir contenidos desde el propio S.O., de tal manera que al ejecutar una aplicación sólo se ha de pedir al sistema que comparta y preguntará a cada uno de los Content Listeners si pueden manejar el contenido que quieres compartir (texto, imagen, url, etc…) El S.O. mostrará una lista de los objetivos posibles para ese contenido y sólo habrá que seleccionar cual usar.

Traduciendo esto a código se ha de recuperar el objeto DataTransferManager para la vista actual y añadir un trigger para el evento DataRequested

DataTransferManager dataTransferManager;

dataTransferManager.DataRequested += new Windows.Foundation.TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.ShareTextHandler);

después escribimos el método que se va a lanzar donde creamos un objeto DataPackage para almacenar los contenidos y se lo asignamos al DataRequest

public void ShareTextHandler(DataTransferManager sender, DataRequestedEventArgs e)

{

   DataRequest request = e.Request;

   dataPackage.Properties.Title = Title;

   dataPackage.Properties.Description = Description;

   dataPackage.SetWebLink(new Uri(URI));


   request.Data = dataPackage;
}

 

Windows 8.1: Haciendo aparecer la barra de Charms y eligiendo la opción de Compartir nos mostrará una nueva opción cuando la aplicación esté ejecutándose en el frente.

Windows Phone 8.1: La acción de compartir ha de ser lanzada manualmente.

Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();

Deja un comentario

Responsable » Solidgear.
Finalidad » Gestionar los comentarios.
Legitimación » Tu consentimiento.
Destinatarios » Los datos que me facilitas estarán ubicados en los servidores SolidgearGroup dentro de la UE.
Derechos » Podrás ejercer tus derechos, entre otros, a acceder, rectificar, limitar y suprimir tus datos.

Envíando este formulario aceptas la política de privacidad.

¿Necesitas una estimación?

Calcula ahora