Статьи

Использование пробного API в вашей игре WinJS

* Эта статья также является частью 30-дневной серии, которая поможет вам запустить ваше приложение. Для получения дополнительной информации посетите приложение Generation App, испытайте себя и воспользуйтесь бесплатной поддержкой и ресурсами, чтобы создать приложение для Магазина Windows в течение 30 дней. Кроме того, загрузите пробную версию Visual Studio 2012 здесь.

Пробный API — это отличный способ позволить пользователям опробовать вашу игру перед ее приобретением или провести различие между пробной версией и полной версией. В этом примере мы начнем с шаблона игры JavaScript , который можно загрузить в галерее кодов MSDN.

После открытия решения щелкните правой кнопкой мыши проект SampleGame , выберите « Добавить» -> « Новая папка» . Назовите эту папку «data».

01

Щелкните правой кнопкой мыши на папке с данными, которую вы только что создали, затем выберите « Добавить элемент» . Добавьте файл XML и назовите его «license.xml».

0203

Добавьте соответствующую информацию для листинга, лицензии, цены и т. Д. Ваш файл XML. Вот что я использовал:

<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>2B14D306-D8F8-4066-A45B-0FB3464C67F2</AppId>
      <LinkUri>http://apps.microsoft.com/app/2B14D306-D8F8-4066-A45B-0FB3464C67F2</LinkUri>
      <CurrentMarket>en-US</CurrentMarket>
      <AgeRating>3</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>Sample Game</Name>
        <Description>Sample JavaScript Game for Windows 8</Description>
        <Price>2.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </App>
  </ListingInformation>
 
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>true</IsTrial>
      <ExpirationDate>2022-12-31T23:59:59.00Z</ExpirationDate>
    </App>
  </LicenseInformation>
</CurrentApp> 

Откройте файл default.js и добавьте следующие переменные в начало файла:

var appmodel = Windows.ApplicationModel;
var storage = Windows.Storage;
var appdata = Windows.Stroage.ApplicationData;

04

Теперь добавьте следующее к тому же файлу:

appdata.current.localFolder.createFolderAsync("Microsoft\\Windows Store\\ApiData", storage.CreationCollisionOption.openIfExists).then(function (folder) {
    appmodel.Package.current.installedLocation.getFileAsync("data\\license.xml").then(function (file) {
        folder.createFileAsync("WindowsStoreProxy.xml", storage.CreationCollisionOption.replaceExisting).then(function (newFile) {
            file.copyAndReplaceAsync(newFile);
        });
    });
});
05

Теперь мы собираемся добавить возможность приобрести пробную версию на главной странице игры.

Откройте homePage.html и добавьте следующий текст и кнопку:

<h4 id=”info”>Trial Version</h4>
<button id=”purchase” class=”purchase-button”></button>

06

Откройте homePage.css и добавьте следующий класс CSS, чтобы определить стиль кнопки.

.purchase-button {
    width: 225px;
    height: 120px;
    margin-top: 24px;
}
07

Откройте homePage.js и добавьте следующее после выражения «использовать строгое»:

var app = Windows.ApplicationModel.Store.CurrentAppSimulator;

08

Теперь добавьте следующее к функции ready:

if (app.licenseInformation.isTrial) {
    // Show the purchase price on the purchase button
    var button = document.querySelector("#purchase");

    app.loadListingInformationAsync().then(function (listing) {
        button.textContent = "Upgrade to the Full Version for " + listing.formattedPrice;
    });
}
else {
    // Show the expiration date and hide the purchase button
    document.querySelector("#info").textContent = "Valid until " + app.licenseInformation.expirationDate.toLocaleDateString();
    document.querySelector("#purchase").style.visibility = "hidden";
}
09

Нажмите F5.

10

Теперь вернитесь в Visual Studio, остановите отладку и откройте файл license.xml. Измените <IsTrial> с true на false. Вы заметите, что при запуске приложения панель покупок исчезла.

13

Теперь измените <IsTrial> обратно на true .

Полезный совет: всякий раз, когда вы тестируете IsTrial , не забудьте также протестировать IsActive . Когда пробный период заканчивается, IsTrial возвращает true , а IsActive возвращает false .

Теперь давайте добавим следующее в homePage.js, прямо перед оператором else:

// Handle clicks of the purchase button
button.onclick = function () {
    app.requestAppPurchaseAsync(false);
};
11

Чтобы смоделировать покупку, нажмите на панель покупок и выберите S_OK для «Код ошибки для возврата» и нажмите « Продолжить» .

12

Теперь давайте проверим, купили ли мы приложение, покинув домашнюю страницу и вернувшись. Вы можете сделать это, нажав на КРЕДИТЫ, а затем вернувшись на главный экран.

13

Полезный совет: когда вы будете готовы отправить свое приложение, не забудьте изменить CurrentAppSimulator на CurrentApp . В противном случае ваше приложение Магазина Windows не пройдет сертификацию.

Подробнее о создании пробной версии приложения читайте в этой статье в Центре разработки Windows.