Showing posts with label MonoGame. Show all posts
Showing posts with label MonoGame. Show all posts

Tuesday, April 9, 2013

Windows App Store und euer App-Rating

In diesem Blog-Eintrag heute möchte ich euch zeigen, wie eure APP-Anwender eure APP raten können, und vor allem, wie Ihr sie dabei aus eurer coolen APP heraus dabei unterstützen könnt.

Rating-Vergabe durch den Anwender in der Store-App

Eure Anwender können ein Rating direkt in der Store-App vergeben.

image

Rating-Vergabe durch den Anwender in der App selbst

Dafür müssen eure Anwender die Charm-Bar öffnen (Rechts am Rand Wischen, per Tastenkombination Win+C, oder per Mauszeiger zur oberen, oder unteren rechten Ecke des Displays fahren) und unter den Einstellungen den richtigen Punkt anwählen.

imageimage

Die Seite aus der Applikation aufrufen

Es ist sicherlich eine gute Idee eure Anwender innerhalb der Applikation auf das mögliche Rating der APP aufmerksam zu machen.

Dazu solltet Ihr den FavoriteAppBarButtonStyle in eurer StandardStyles.xaml eintragen:

<Style x:Key="FavoriteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}">
    <Setter Property="AutomationProperties.AutomationId" Value="FavoriteAppBarButton"/>
    <Setter Property="AutomationProperties.Name" Value="Rate this app"/>
    <Setter Property="Content" Value="&#xE113;"/>
</Style>

Diesen könnt Ihr dann z. B. in der unteren AppBar verwenden:

<Page.BottomAppBar>
    <AppBar x:Name="BottomAppBar">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="50*"/>
                <ColumnDefinition Width="50*"/>
            </Grid.ColumnDefinitions>
            <StackPanel x:Name="LeftPanel" Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left">
                <Button x:Name="Rate" Style="{StaticResource FavoriteAppBarButtonStyle}" Click="Rate_Clicked"/>
            </StackPanel>
            <StackPanel x:Name="RightPanel" Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right" Visibility="Collapsed">
            </StackPanel>
        </Grid>
    </AppBar>
</Page.BottomAppBar>


Das sieht dann ungefähr so aus:

image

Jetzt fehlt euch nur noch der Code im Click event, dort verwendet Ihr diese Zeile:

Windows.System.Launcher.LaunchUriAsync(
       new Uri("ms-windows-store:REVIEW?PFN=APPS_PACKAGE_FAMILY_NAME"));

Wobei Ihr APPS_PACKAGE_FAMILY_NAME durch den Eintrag aus eurer appmanifest-Datei ersetzt.
Dazu einfach in Visual Studio 2012 den Punkt: PROJECT->Store->Edit App Manifest aufrufen und auf den Packaging Tab klicken.

image

Wenn alles klappt, dann öffnet sich die Store-APP und ihr bekommt folgendes Bild (natürlich für eure APP):

image

Windows AppStore und das Privacy Statement

Gebt acht, wenn Ihr in eurer Windows Store Applikation die Internet Verbindung in eurem Projekt-Manifest aktiviert habt.
Ihr könnt dies in Visual Studio 2012 folgendermaßen prüfen: PROJECT->Store->Edit App Manifest (Capabilities tab)

image

Wenn dies aktiviert ist (ACHTUNG, falls Ihr  ‘Microsoft Advertising’ verwendet, dann braucht Ihr diese Einstellung unbedingt, da die Werbebanner (Ads) aus dem Web dynamisch geladen werden), dann MÜSST Ihr

  • ein Policy Statement in eurem Windows Settings Charm UND
  • die Policy URL beim Submitten eurer APP angeben.

Falls Ihr das nicht macht, wird eure Applikation nicht zertifiziert und Ihr findet folgende Fehlermeldung in eurem DashBoard:

The app has declared access to network capabilities and no privacy statement was provided in the Description page.
The app has declared access to network capabilities and no privacy statement was provided in the Windows Settings Charm.

Soweit so gut, wie macht man das nun? Beginnen wir mit dem einfacheren:

Die Policy URL beim Submitten eurer APP angeben

Hier solltet Ihr vorsichtig sein, die Datenschutzrichtlinien sind leider optional, man bekommt keinen Fehler, wenn man das nicht ausfüllt.

Ihr findet die Eingabe in eurem DashBoard unter ‘Beschreibung’. ACHTUNG, der Punkt ist erst enabled, wenn Ihr euer App-Paket hochgeladen habt.
https://appdev.microsoft.com/StorePortals/de-DE/ (unter App übermitteln, bzw. ‘Apps in Bearbeitung’ und ‘Bearbeiten’)

imageimage

Ihr scrollt dann ganz nach unten und tragt dort eine URL ein, wo eure Datenschutzrichtlinien zu finden sind.
Habt Ihr noch keinen Text für die Datenschutzrichtlinien, könnt Ihr gerne den Text aus meinem Blog-Eintrag vom März verwenden.
http://hamboeck.blogspot.co.at/2013/03/privacy-statement-windows8.html

image

Wie programmiert Ihr das aber in der APP aus? Sehen wir uns das jetzt an.

Policy Statement in eurem Windows Settings Charm für JavaScript Store Apps

Fügt dazu die benötigten HTML-Dateien eurer Applikation hinzu (in dem unteren Beispiel wären das: support.html, about.html und privacy.html).

Danach fügt Ihr folgenden JavaScript Code zu eurer default.html-Seite hinzu.

    <script>
window.onload = function () {
WinJS["Application"].addEventListener("settings", function (e) {
e.detail.applicationcommands =
{
"support":
{
title: "Support",
href: "/support.html"
},
"about":
{
title: "About",
href: "/about.html"
},
"privacy":
{
title: "Privacy Policy",
href: "/privacy.html"
}
};

WinJS.UI.SettingsFlyout.populateSettings(e);
});
}
</script>


Jetzt noch eure Applikation starten und seht euch das Resultat im Charm an:


imageimage


Policy Statement in eurem Windows Settings Charm für C# Store Apps


Ihr müsst euche an den CommandsRequested event an dem SettingsPane Objekt für eure momentane View anhängen, ein guter Platz ist z. B. der Loaded event eurer Page, oder der Constructor (nach dem InitializeComponent(); Aufruf).


Code:
            SettingsPane forCurrentView = SettingsPane.GetForCurrentView();
forCurrentView.CommandsRequested += this.App_CommandsRequested;



Danach erzeugt die Methoden für den Event.


Code:
        private void App_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
SettingsCommand command = new SettingsCommand("Privacy Policy", "Privacy Policy", OnPolicyInvoked);
args.Request.ApplicationCommands.Add(command);
}

private static void OnPolicyInvoked(IUICommand uiCommand)
{
Launcher.LaunchUriAsync(new Uri("http://hamboeck.blogspot.co.at/2013/03/privacy-statement-windows8.html"));
}


Das sieht dann zur Laufzeit so aus:


imageimage

Monday, April 8, 2013

Windows AppStore–Game Ratings vermeiden

Falls Ihr Spiele im Microsoft AppStore veröffentlichen wollt, müsst Ihr aufpassen, für welche Märkte Ihr dieses Spiel bereit stellt, da manche Märkte ein Zertifikat für euer Spiel verlangen. Habt Ihr keine Zeit, oder keine Lust euch eben dieses zu besorgen, dürft Ihr nicht einfach alle Märkte beim submitten eures Spieles anwähle, sondern müsst Ihr die folgenden Märkte auslassen:

  • Brasilien, Russland,  Südkorea und Taiwan

Ihr stellt die Märkte in eurem Store-Portal unter dem Punkt ‘Verkaufsdetails’ ein:
https://appdev.microsoft.com/StorePortals/de-DE/Home/Index

image

Falls Ihr das nicht macht und trotzdem euer Spiel in den AppStore submittet, wird eure Applikation mit folgender Meldung in eurem DashBoard abgelehnt:

Your submission includes markets which require a rating from a recognized ratings board.
Please see http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh694080.aspx
for more information on the ratings boards for the Windows Store.

For more information on obtaining a game rating certificate, please see:
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452763.aspx

CSharpCodeFormatter