Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Estyaah Utilisateur néophyte
Inscrit le: 23 Nov 2011 Messages: 4
|
#1 Posté le: 27/07/2015 08:56 Sujet du message: Conseils pour un dev débutant : version d'évaluation |
|
|
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 |
|
|
Estyaah Utilisateur néophyte
Inscrit le: 23 Nov 2011 Messages: 4
|
#2 Posté le: 28/07/2015 09:44 Sujet du message: problème résolu |
|
|
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 !" |
|
Revenir en haut de page |
|
|
Christophe Administrateur
Inscrit le: 18 Aoû 2006 Messages: 11636 Localisation: Vendée
|
#3 Posté le: 28/07/2015 11:22 Sujet du message: |
|
|
Ca me semble propre comme code
A noter que pour les achats InApp tu peux faire la même chose _________________ Christophe - Webmaster & Maître de ces lieux ... |
|
Revenir en haut de page |
|
|
heurdert Utilisateur néophyte
Inscrit le: 14 Sep 2015 Messages: 4
|
#4 Posté le: 23/09/2015 08:33 Sujet du message: |
|
|
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 |
|
|
|
|
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
|
|
|