Pierre-Henri - L'appli windows phone

 25/09/2019 |   Admin |  Windows phone


L'application Pierre-Henri pour windows phone vient de voir le jour. Le but de développer cette application était avant tout pour le fun et aussi pour tester les possibilités du CMS Orchard.

J'ai donc développé une API "Orchard.PhApi" (qui sera prochainement disponible sous forme de plugin). Cette API permet de requêter Orchard afin d'obtenir le contenu dont j'avais besoin pour l'application mobile, à savoir, le contenu des pages et du blog.

L'application est disponible via cette url : http://windowsphone.com/s?appid=91f66219-d58b-40cc-a547-a3028214d984

L'application affiche le menu et le contenu dynamiquement en fonction de l'API Orchard. Cette application mobile pourra donc être connectée à n'importe quel site Orchard, c'est pour cette raison que j'essairai d'en faire un projet open source, soit windows universal app, ou alors un projet Xamarin.

Un post plus détaillé mettera en avant les technos utilisées pour réaliser au mieux cette appli.

Lire >>

Windows phone 10 - Afficher un popup de confirmation avant de fermer l'application

 25/09/2019 |   Admin |  Windows phone


Dans une application universelle, pour la famille Windows Phone, l'appui sur le bouton Back entraine un retour sur la page précédente. Si cette dernière est la première page de l'application, l'application va se fermer.

Ce fonctionnement est logique mais un utilisateur peut utiliser cette fonction intentionnellement. C'est pour cela que l'ajout d'un popup de confirmation peut-être utile dans certains cas.

Dans la méthode OnLaunched de la classe App (App.xaml.cs)

Dans un premier temps, il faut tester si le device est un téléphone et si le bouton back est présent :

if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
    HardwareButtons.BackPressed += OnBackPressed;
}

Ensuite, déclarer une méthode privée au sein de cette même classe :

private async void OnBackPressed(object sender, BackPressedEventArgs e)
{
    var frame = (Frame)Window.Current.Content;
    e.Handled = true;

    if (frame.CanGoBack)
    {        
        frame.GoBack();
    }
    else
    {
        var msg = new MessageDialog("Etes-vous sûr de vouloir quitter l'application ?");
        var okBtn = new UICommand("Oui");
        var cancelBtn = new UICommand("Non");
        msg.Commands.Add(okBtn);
        msg.Commands.Add(cancelBtn);
        IUICommand result = await msg.ShowAsync();
 
       if (result != null && result.Label == "Oui")
       {
            Application.Current.Exit();
       }
    }
}

[Capture]

Lire >>

FileHelper pour Winrt - Windows Phone et Windows 8.1

 01/01/2019 |   Admin |  Xamarin


Il existe des API du Framework .NET qui n'existent pas dans les API .NET des Windows Store Apps.

Par exemple Sytem.IO, dans l'API .Net pour les Windows Apps ne contient pas System.IO.IsolatedStorage mais Windows.Storage.

Cette API fournit un comportement similaire mais son utiliastion est très différente. 

Après le développement de plusieurs applications Windows Store, j'ai remarqué que le développement d'une classe FileHelper serait utile.

En effet, des méthodes comme FileExists() ou FolderExists() ne sont pas proposés par Windows.Storage alors que leur utilisation est quasiment inévitable.

J'ai donc décidé de mettre ce code sur GitHub pour qu'il puisse être réutilisé et amélioré. Le code source ainsi que le sample d'une Universal Apps sont disponibles.

Voici la liste des fonctions majeures proposées :

FileHelper :

FileExistsAsync()

FolderExistsAsync()

GetFileStreamAsync()

GetContentFromFileAsync()

GetFileBytesAsync()

WriteToFileAsync()

ConvertStorageFileToBase64StringAsync()

EnumerateFilesAsync()

GetSubFoldersAsync()

DeserialiseXml<T>()

ZipHelper :

ZipFileAsync()

UnZipFileAsync()

Vous pouvez retrouver ce projet sur GitHub et le package nuget correspondant : Ph.WinRtFileHelper

Lire >>

Implémentation de "User Dialogs" pour Windows phone 8, Windows 8 et Xamarin pour Windows

 01/01/2019 |   Admin |  Xamarin


Voici un exemple d'implémentation du plugin UserDialogs pour la plateforme Windows.

L'auteur du plugin a indiqué qu'il ne supportera pas Windows 8. Il préfère se concentrer sur le développement du plugin pour Windows 10.

ConfirmAsync

public async Task<bool> ConfirmAsync(string message, string title = null, string okText = "OK", string cancelText = "Cancel")
{
   var messgeDialog = new MessageDialog(message, title);
   messgeDialog.Commands.Add(new UICommand(okText));
   messgeDialog.Commands.Add(new UICommand(cancelText));
   messgeDialog.DefaultCommandIndex = 0;
   messgeDialog.CancelCommandIndex = 1;
   var result = await messgeDialog.ShowAsync();
   if (result.Label.Equals(okText))
   {
      return true;
   }
   else
   {
      return false;
   } 
}

AlertAsync

public async Task AlertAsync(string message, string title = null, string okText = "OK")
{
   var md = new MessageDialog(message, title);
   await md.ShowAsync();
}

PromptAsync

public async Task PromptAsync(string message, string title = null, string okText = "OK", string cancelText = "Cancel", string placeholder = "", bool secure = false)
{
   var dialog = new PromptDialog(message, placeholder);
   var result = await dialog.ShowAsync();
   if (result != null)
   {
      return result;
   }
   else
   {
     
...

Lire >>

  • 1