Accueil  -  RSS  -  Twitter  -  Wiki  -  FAQ  -  Rechercher  -  Vérification messages privés  -  Connexion  -  Enregistrement

Conseils pour un dev débutant : version d'évaluation

 
Poster un nouveau sujet   Répondre au sujet    SPF Index du Forum -> Logiciels Windows Phone
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Estyaah
Utilisateur néophyte


Inscrit le: 23 Nov 2011
Messages: 4

 #1 MessagePosté le: 27/07/2015 08:56    Sujet du message: Conseils pour un dev débutant : version d'évaluation Répondre en citant

Bonjour à tous !

Je débute dans le développement pour windows/windows phone. Je me suis aidé de App Studio (super outil) pour créer une application, et j'ai ensuite édité le code (principalement xaml) dans visual studio pour l'adapter à ce que je voulais.
Cependant, je suis un peu coincé, dû à mes lacunes en c# (je suis plus dev web / scripting).
Voici ce que je souhaite faire : une version d'évaluation avec de la publicité, et si la personne achète la version complète, la publicité disparait.
Actuellement, mon application fait tout ce que je veux (sur WP8.1 et W8 ) et contient de la publicité.
C'est maintenant que je rentre dans la technique :
pour tester si je suis en mode d'évaluation, j'ai initialisé une "LicenseInformation", puis j'ai créé un élément AdControl ( mon code : AdControl Pub = new AdControl(); )
Ensuite, je fais mon test sur "IsTrial". En fonction de la condition, j'attribue la valeur "Visibility.Visible" ou "Visibility.Collapse" à "Pub.Visibility".
Enfin, dans mon code xaml, j'ai un bloc "<AdControl " dans lequel j'ai ajouté x:Name="Pub".
Mais c'est peut-être pas du tout comme ça que ça devrait se faire ?

En tout cas, le code ne génère pas d'erreur lors du build, mais quelles que soit les conditions, la pub est toujours affichée.

Comme je ne connais pas bien le c#, je fais sans doute une erreur grossière, mais j'avoue que je suis un peu pommé, malgré mes heures passées sur les différentes pages MSDN (pourtant pas mal faites)...

J'espère que j'ai posté ça au bon endroit, car je n'ai pas vraiment trouvé de sujet similaire...

A plus !
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Estyaah
Utilisateur néophyte


Inscrit le: 23 Nov 2011
Messages: 4

 #2 MessagePosté le: 28/07/2015 09:44    Sujet du message: problème résolu Répondre en citant

J'ai réussi à faire ce que je voulais.

Voici la procédure que j'ai effectuée, qui n'est surement pas la meilleure niveau algo, mais qui a le mérite de fonctionner.

Dans la partie spécifique à windows et dans views (ou windows phone et views), il y a tous les xaml, et pour chaque xaml, un .cs associé.
Dans ce .cs, il n'y a pas forcément grand chose (s'il n'y a pas d'action spécifique à faire en c# pour cette page en particulier).
C'est dans la classe associée à une page xaml que l'on va faire appel à la fonction OnNavigatedTo() qui est normalement déjà existante dans le projet.

Code:

using MonApplication;
using Windows.ApplicationModel.Store; // pour la licence
using Windows.UI.Xaml; // pour Visibility
using Windows.UI.Xaml.Navigation; // pour NavigationEventArgs

// déjà présent :
namespace MonApplication
{
    public sealed partial class NomDeLaPage : PageBase
    {
// A partir d'ici j'ajoute mon code :
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            #if DEBUG  // Si on utilise le simulateur, on récupère la licence du fichier WindowsStoreProxy.xml généré dans %userprofile%\\appdata\\local\\packages\\<package-name>\\localstate\\microsoft\\Windows Store\\Apidata\\ qui est à modifier à sa convenance)
            LicenseInformation licenseInformation = CurrentAppSimulator.LicenseInformation;
            #else // si on est en prod, on prend la vrai licence
            LicenseInformation licenseInformation = CurrentApp.LicenseInformation;
            #endif



            if (licenseInformation.IsActive) // toujours vérifier ce point
            {
                if (licenseInformation.IsTrial) // si on est en éval
                {
                    Pub.Visibility = Visibility.Visible;
                }
                else
                {
                    Pub.Visibility = Visibility.Collapsed;
                }
            }
            base.OnNavigatedTo(e);
        }
    }
}

Attention, pour les tests ce code fonctionne pour Windows, mais pour WindowsPhone, CurrentAppSimulator n'est pas pris en charge, donc il faut soit même simuler les valeurs que l'on souhaite :

Code:

...
LicenseInformation licenseInformation = CurrentApp.LicenseInformation;

            var trial = licenseInformation.IsTrial;
#if DEBUG       
            trial = false; // ou true, selon ce que vous voulez tester
#endif
            if (licenseInformation.IsActive)
            {
                if (trial)
                {...


Ensuite, on va dans le fichier xaml. Dans son bloc de pub, cela donne un truc comme ça :
Code:
<UI:AdControl x:Name="Pub" ApplicationId="toto" ...


Voilà... J'ai tellement galéré que je me dit que je ne suis peut-être pas le seul (ou alors je suis vraiment nul...). Donc si un autre nul comme moi se pose la question trouve ce topic, je ne voudrais pas qu'il trouve uniquement un "c'est bon, c'est résolu, merci à plus !" Wink
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Christophe
Administrateur


Inscrit le: 18 Aoû 2006
Messages: 11636
Localisation: Vendée

 #3 MessagePosté le: 28/07/2015 11:22    Sujet du message: Répondre en citant

Ca me semble propre comme code Smile

A noter que pour les achats InApp tu peux faire la même chose Smile
_________________
Christophe - Webmaster & Maître de ces lieux ...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
heurdert
Utilisateur néophyte


Inscrit le: 14 Sep 2015
Messages: 4

 #4 MessagePosté le: 23/09/2015 08:33    Sujet du message: Répondre en citant

J'aurais bien aimé que des gens rebondisse sur ce passage, je ne suis pas pro mais, je vois souvent revenir ce genre d'attitude d'adaptation clientel dans les forums.
Et aussi et surtout, ai-je bien compris ce passage? imaginons que demain un chanteur de renom viennes me demander de faire sa jackette de cd (dans tes rêves petit) , je peux vraiment rien faire au niveau du prix? housse samsung galaxy s6 edge plus coque samsung galaxy s6 edge plus
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    SPF Index du Forum -> Logiciels Windows Phone Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum