Erstellen einer Testversion Ihrer App (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Wenn Kunden Ihre App während eines Testzeitraums kostenlos verwenden dürfen, können Sie die App so entwerfen, dass einige Features während dieses Zeitraums nicht oder nur eingeschränkt zur Verfügung stehen. Außerdem können Sie Features wie Banner oder Wasserzeichen aktivieren, die nur in der Testversion angezeigt werden, bevor ein Kunde Ihre App kauft. Hier finden Sie Informationen, wie Sie dieses Feature zu Ihrer App hinzufügen.

Wenn Sie Test-Apps und andere wichtige Windows 8-Features ausprobieren möchten, können Sie die praktischen Übungen für Windows 8 herunterladen. Diese Übungen bieten eine modulare, schrittweise Einführung in das Erstellen einer Windows Store-Beispiel-App in der Programmiersprache Ihrer Wahl (JavaScript und HTML oder C# und XAML).

Wissenswertes

Technologien

Voraussetzungen

  • Eine Windows-Runtime -App, die geändert werden soll

Anweisungen

Schritt 1: Suchen Sie die Features aus, die während des Testzeitraums aktiviert bzw. deaktiviert werden sollen.

Der aktuelle Lizenzstatus Ihrer App wird als Eigenschaften der LicenseInformation-Klasse gespeichert. In der Regel nehmen Sie die vom Lizenzstatus abhängigen Funktionen in einen Bedingungsblock auf, wie im nächsten Schritt beschrieben. Stellen Sie beim Auswählen dieser Features sicher, dass sie so implementiert werden können, dass sie in jedem Lizenzstatus funktionieren.

Überlegen Sie auch, wie Änderungen an der App-Lizenz während der Ausführung der App verarbeitet werden sollen. Ihre Test-App kann alle Features, aber zusätzlich Anzeigenbanner in der App enthalten, die die kostenpflichtige Version nicht enthält. Oder in der Test-App sind bestimmte Features deaktiviert, oder es werden regelmäßig Aufforderungen zum Kauf angezeigt.

Überlegen Sie, welche Art App Sie erstellen und welche Test- oder Ablaufstrategie sich gut für sie eignet. Bei einer Testversion für ein Spiel hat es sich bewährt, den Umfang des Spielinhalts, den ein Anwender nutzen kann, zu beschränken. Bei der Testversion eines Hilfsprogramms möchten Sie vielleicht ein Ablaufdatum festlegen oder die Features beschränken, die ein potenzieller Kunde verwenden kann.

Bei den meisten Apps, die keine Spiele sind, ist das Festlegen eines Ablaufdatums eine gute Methode, da Benutzer ein gutes Verständnis für die vollständige App entwickeln. Im Folgenden sind häufige Ablaufszenarien und Ihre Optionen für ihre Handhabung aufgeführt.

  • Ablauf der Testlizenz während der App-Ausführung

    Falls die Testversion abläuft, während die App ausgeführt wird, kann Ihre App:

    • keine Aktion ausführen.
    • dem Kunden eine Meldung anzeigen.
    • geschlossen werden.
    • den Kunden auffordern, die App zu kaufen.

    Die beste Vorgehensweise ist, eine Meldung mit der Aufforderung zum Kauf der App anzuzeigen und nach dem Kauf die App mit allen aktivierten Features fortzusetzen. Wenn der Kunde die App nicht kauft, wird die App geschlossen, oder der Kunde wird in regelmäßigen Abständen daran erinnert, die App zu kaufen.

  • Ablauf der Testlizenz vor dem Starten der App

    Falls die Testversion abläuft, bevor der Benutzer die App startet, wird Ihre App nicht gestartet. Stattdessen sehen Benutzer ein Dialogfeld, das ihnen die Möglichkeit bietet, die App im Windows Store zu kaufen.

  • Kauf der App durch den Kunden während der App-Ausführung

    Falls der Kunde Ihre App während ihrer Ausführung erwirbt, kann die App:

    • keine Aktion ausführen und die Fortsetzung im Testmodus bis zum Neustart der App zulassen.
    • dem Kunden für den Kauf danken oder eine andere Meldung anzeigen.
    • die Features aktivieren, die mit einer Volllizenz verfügbar sind (oder die Meldungen, dass es sich um eine Testversion handelt, deaktivieren).

Falls Sie die Lizenzänderung ermitteln und eine Aktion in der App ausführen möchten, müssen Sie einen Ereignishandler hinzufügen, wie im nächsten Schritt beschrieben.

Schritt 2: Initialisieren Sie die Lizenzinfos.

Rufen Sie beim Initialisieren der App das LicenseInformation-Objekt für die App ab, wie im folgenden Beispiel beschrieben. Es wird davon ausgegangen, dass licenseInformation eine globale Variable oder ein Feld vom Typ LicenseInformation ist.

Initialisieren Sie CurrentApp oder CurrentAppSimulator, um auf die Lizenzinfos zur App zuzugreifen.


function initializeLicense()
{
    // (some app initialization functions)

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // get the license info
        licenseInformation = currentApp.licenseInformation;

    // (other app initialization functions)
}

Fügen Sie einen Ereignishandler hinzu, um Benachrichtigungen zu Lizenzänderungen während der Ausführung der App zu erhalten. Die App-Lizenz kann sich zum Beispiel ändern, wenn der Testzeitraum abläuft oder der Kunde die App in einem Store kauft.


function initializeLicense()
{
    // some app initialization functions

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

        // Register for the license state change event.
        licenseInformation.addEventListener("licensechanged", reloadLicense);

    // other app initializations function
}

function reloadLicense()
{
    // (code is in next steps)
}

Schritt 3: Schreiben Sie den Code für die Features in Bedingungsblöcke.

Beim Auslösen des Lizenzänderungsereignisses muss die App über einen Aufruf der Lizenz-API ermitteln, ob sich der Teststatus geändert hat. Der Code in diesem Schritt veranschaulicht, wie der Handler für dieses Ereignis strukturiert werden muss. Falls ein Benutzer die App gekauft hat, wird empfohlen, den Benutzer zu diesem Zeitpunkt über den geänderten Lizenzstatus zu informieren. Gegebenenfalls müssen Sie den Benutzer zum Neustarten der App auffordern, falls Ihre Programmierung dies erfordert. Versuchen Sie aber, diesen Übergang so nahtlos und unmerklich wie möglich zu machen.

Dieses Beispiel zeigt, wie der Lizenzstatus einer App ermittelt wird, um ein Feature Ihrer App zu aktivieren oder zu deaktivieren.


function reloadLicense()
{
    if (licenseInformation.isActive) 
    {
        if (licenseInformation.isTrial)
        {
            // Show the features that are available during trial only.
        }
        else
        {
            // Show the features that are available only with a full license.
        }
    }
    else
    {
        // A license is inactive only when there's an error.
    }
}

Schritt 4: Abrufen des Ablaufdatums der Testversion einer App (nur Windows)

Nehmen Sie Code mit auf, um das Ablaufdatum der Testversion einer App abzurufen.

Der Code in diesem Beispiel legt eine Funktion fest, mit der das Ablaufdatum der Testversion einer App abgerufen wird. Ist die Lizenz noch gültig, wird das Ablaufdatum zusammen mit den verbleibenden Tagen bis zum Ablauf des Testzeitraums angezeigt.

function displayTrialVersionExpirationTime()
{
    if (licenseInformation.isActive)
    {
        if (licenseInformation.isTrial)
        {
            var longDateFormat = Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longdate");

            // Display the expiration date using the DateTimeFormatter. 
            // For example, longDateFormat.format(licenseInformation.expirationDate) 

            var daysRemaining = (licenseInformation.expirationDate - new Date()) / 86400000;

            // Let the user know the number of days remaining before the feature expires.
        }
        else
        {
            // ...
        }
    }
    else
    {
       // ...
    }
}

Schritt 5: Testen Sie die Features mithilfe simulierter Aufrufe an die Lizenz-API.

Testen Sie nun die App mithilfe simulierter Aufrufe an den Lizenzserver. Ersetzen Sie in JavaScript, C#, Visual Basic oder Visual C++ im Initialisierungscode der App Verweise auf CurrentApp durch CurrentAppSimulator.

CurrentAppSimulator ruft testspezifische Lizenzinformationen aus der XML-Datei "WindowsStoreProxy.xml" ab, die sich unter %userprofile%\AppData\local\packages\<package name>\LocalState\Microsoft\Windows Store\ApiData befindet. Sind dieser Pfad und diese Datei nicht vorhanden, müssen Sie sie bei der Installation oder während der Laufzeit erstellen. Falls die Datei "WindowsStoreProxy.xml" an dem angegebenen Speicherort nicht vorhanden ist und Sie versuchen, auf die CurrentAppSimulator.LicenseInformation-Eigenschaft zuzugreifen, erhalten Sie eine Fehlermeldung.

Dieses Beispiel veranschaulicht das Hinzufügen von Code, um die App in unterschiedlichen Lizenzierungszuständen zu testen.

function appInit
{
    // some app initialization functions

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

    // other app initialization functions
}

Sie können "WindowsStoreProxy.xml" bearbeiten, um die simulierten Ablaufdaten für die App und die Features zu ändern. Testen Sie alle möglichen Ablauf- und Lizenzkonfigurationen, damit alles wunschgemäß funktioniert.

Schritt 6: Ersetzen Sie die simulierten Lizenz-API-Methoden durch die tatsächliche API

Wenn Sie die App mit dem simulierten Lizenzserver getestet haben, ersetzen Sie CurrentAppSimulator durch CurrentApp, bevor Sie die App zur Zertifizierung an einen Store übermitteln (siehe nächstes Codebeispiel).

Wichtig  Ihre App muss das CurrentApp-Objekt verwenden, wenn Sie sie an einen Store übermitteln, da sonst die Zertifizierung nicht erfolgreich ist.

 

function appInit
{
    // (some app initialization functions)

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        //   currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

    // (other app initialization functions)
}

Schritt 7: Beschreiben Sie für Ihre Kunden, wie die kostenlose Testversion funktioniert

Erläutern Sie, wie sich Ihre App während und nach dem kostenlosen Testzeitraum verhält, sodass Ihre Kunden vom Verhalten Ihrer App nicht überrascht werden.

Weitere Informationen zum Beschreiben Ihrer App finden Sie unter Beschreibung Ihrer App.

Verwandte Themen

Beispiel für Test-App und In-App-Einkauf

CurrentApp

CurrentAppSimulator