MSDN España

Noticias, avisos, reflexiones... del equipo que hay detrás de MSDN en España... también tendremos alguna que otra firma invitada :)

Windows 8 Tips & Tricks. Añadir un enlace a nuestra Política de Privacidad (XAML/C#)

Windows 8 Tips & Tricks. Añadir un enlace a nuestra Política de Privacidad (XAML/C#)

[Nota: Este artículo pertenece a nuestra serie de Windows 8 Tips & Tricks]

Si tu aplicación se conecta a Internet o recolecta y almacena información personal de cualquier tipo como pudieran ser fotos, tienes que incluir una Política de Privacidad en su apartado de Settings e indicar en ella qué datos recoges, qué uso haces de esos datos, etc. Esto es obligatorio para poder pasar la certificación de la Tienda de Windows 8, y en este Tips & Tricks te enseñamos cómo hacerlo.

 

[Channel9, YouTube]


 [Nota: Recuerda que si tu aplicación no hace uso de Internet debes deshabilitar Internet (Client) en la pestaña Capabilities del manifiesto] 

El primer paso es indicar qué método de nuestra aplicación queremos que se llame cuando el usuario abra el panel de Settings. Esto podemos hacerlo en la clase App en App.xaml.cs. Al método en cuestión le he llamado OnCommandsRequested: 

sealed partial class App : Application
{
    // Ya tengo listos los Settings?
    private bool m_settingsReady = false;

    protected override void OnLaunched(LaunchActivatedEventArgs args)
    {
        // Notifícame cuando el usuario abra el panel de Settings
        if (!this.m_settingsReady)
        {
            SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested;
            this.m_settingsReady = true;
        }

        // Resto de código de OnLaunched omitido por brevedad
    }

    // Resto de código de App omitido por brevedad
}

 

Nota que he utilizado una propiedad llamada m_settingsReady para evitar registrar el método OnCommandsRequested más de una vez.

Ahora en OnCommandsRequested añadiremos las diferentes opciones que queremos que aparezcan en el panel de Settings de nuestra aplicación. En este caso voy a añadir dos, "Política de Privacidad" y "Contacta con nosotros". Además, indicaré qué método de mi aplicación quiero que se llame cuando el usuario pulse en cualquiera de esas opciones. A ese método le he llamado OnSettingsCommand:

void OnCommandsRequested(
    SettingsPane settingsPane, SettingsPaneCommandsRequestedEventArgs eventArgs)
{
    // Preparamos el metodo que se llamará cuando el usuario pulse 
    // en alguno de los Settings
    UICommandInvokedHandler handler = new UICommandInvokedHandler(OnSettingsCommand);

    // Hacemos que las diferentes opciones aparezcan en los Settings

    // Política de privacidad
    SettingsCommand privacyPolicyCommand = 
        new SettingsCommand("politicaPrivacidad", "Política de privacidad", handler);
    eventArgs.Request.ApplicationCommands.Add(privacyPolicyCommand);

    // Contacta con nosotros
    SettingsCommand contactUsCommand = 
        new SettingsCommand("contactaConNosotros", "Contacta con nosotros", handler);
    eventArgs.Request.ApplicationCommands.Add(contactUsCommand);
}

 

[Nota: Si no dispones de ningún sitio en el que albergar la política de privacidad, puedes hacer uso de Azure Web Sites de forma gratuita]

En OnSettingsCommand detectaremos qué opción ha sido seleccionada y actuaremos en consecuencia. Para el caso de la Política de Privacidad quiero que se abra en el navegador una página web que contenga dicha política:

async void OnSettingsCommand(IUICommand command)
{
    // Obtenemos en cuál de los Setting ha pulsado el usuario
    SettingsCommand settingsCommand = (SettingsCommand)command;

    // Según el que haya pulsado hacemos unas cosas u otras
    switch ((string)settingsCommand.Id)
    {
        case "politicaPrivacidad":
                    
            // Abrimos la página web con nuestra Política de Privacidad 
            // (nota: el enlace es de ejemplo, aquí deberías de poner el tuyo propio)
            await Launcher.LaunchUriAsync(new Uri(
                "http://www.microsoft.com/privacystatement/es-es/core/default.aspx"));

            break;

        case "contactaConNosotros":

            // Abrimos la página web con nuestra información de contacto
            // (nota: el enlace es de ejemplo, aquí deberías de poner el tuyo propio)
            await Launcher.LaunchUriAsync(new Uri(
                "http://support.microsoft.com/contactus/"));

            break;
    }
}

  

Si tienes alguna duda, recuerda que tienes a tu disposición el foro de desarrollo de aplicaciones para Windows 8 en castellano, donde podrás compartir tus conocimientos con la comunidad de desarrolladores y encontrar ayuda para resolver tus dudas técnicas, y una Introducción al desarrollo de aplicaciones para Windows 8.

También puedes estar al día de todas las novedades a través de nuestros rincones en las redes sociales:

Un saludo,

      Alejandro Campos Magencio

 

Blog: formulario de comentarios de publicación (CAPTCHA)