Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli skonfigurujesz swoją aplikację jako bezpłatną wersję próbną w Centrum Partnerskim, aby klienci mogli z niej korzystać za darmo przez określony czas, możesz zachęcić ich do przejścia na pełną wersję aplikacji, wykluczając lub ograniczając niektóre funkcje w okresie próbnym. Określ, które funkcje powinny być ograniczone przed rozpoczęciem kodowania, a następnie upewnij się, że aplikacja zezwala na pracę tylko wtedy, gdy zakupiono pełną licencję. Możesz również włączyć funkcje, na przykład banery lub znaki wodne, które są wyświetlane tylko podczas okresu próbnego, zanim klient kupi aplikację.
W tym artykule pokazano, jak używać elementów członkowskich klasy StoreContext w przestrzeni nazw Windows.Services.Store w celu określenia, czy użytkownik ma licencję próbną aplikacji i otrzymywać powiadomienia, jeśli stan licencji ulegnie zmianie podczas działania aplikacji.
Notatka
Przestrzeń nazw Windows.Services.Store została wprowadzona w systemie Windows 10 w wersji 1607 i może być używana tylko w projektach przeznaczonych dla systemu Windows 10 Anniversary Edition (10.0; Kompilacja 14393) lub nowszej wersji Visual Studio. Jeśli aplikacja jest przeznaczona dla starszej wersji systemu Windows 10, musisz użyć przestrzeni nazw Windows.ApplicationModel.Store zamiast przestrzeni nazw Windows.Services.Store. Aby uzyskać więcej informacji, zobacz tym artykule.
Wskazówki dotyczące implementowania wersji próbnej
Bieżący stan licencji aplikacji jest przechowywany jako właściwości klasy StoreAppLicense. Zazwyczaj umieszczasz funkcje, które zależą od stanu licencji, w bloku warunkowym, jak opisujemy w następnym kroku. Biorąc pod uwagę te funkcje, upewnij się, że można je zaimplementować w sposób, który będzie działać we wszystkich stanach licencji.
Ponadto zdecyduj, jak chcesz obsługiwać zmiany licencji aplikacji podczas działania aplikacji. Twoja aplikacja próbna może być w pełni funkcjonalna, ale zawiera banery reklamowe w aplikacji, których nie ma w wersji płatnej. Możesz też wyłączyć niektóre funkcje aplikacji w wersji próbnej lub wyświetlić zwykłe komunikaty z prośbą użytkownika o jej zakup.
Pomyśl o typie aplikacji, którą tworzysz, oraz o tym, jaka jest dobra strategia próbna lub wygasania. W przypadku wersji próbnej gry dobrym rozwiązaniem jest ograniczenie ilości zawartości gry, którą użytkownik może grać. W przypadku wersji próbnej narzędzia warto rozważyć ustawienie daty wygaśnięcia lub ograniczenie funkcji, z których może korzystać potencjalny nabywca.
W przypadku większości aplikacji innych niż gry ustawienie daty wygaśnięcia działa dobrze, ponieważ użytkownicy mogą dobrze zrozumieć pełną aplikację. Poniżej przedstawiono kilka typowych scenariuszy wygasania i opcje ich obsługi.
licencja w wersji próbnej wygasa, gdy aplikacja jest uruchomiona
Jeśli wersja próbna wygaśnie podczas działania aplikacji, aplikacja może:
- Nic nie rób.
- Wyświetl klientowi komunikat.
- Zamknij.
- Monituj klienta o zakup aplikacji.
Najlepszym rozwiązaniem jest wyświetlenie komunikatu z prośbą o zakup aplikacji, a jeśli klient go kupi, kontynuować użytkowanie z wszystkimi funkcjami włączonymi. Jeśli użytkownik zdecyduje się nie kupić aplikacji, zamknij ją lub przypomnij jej, aby kupić aplikację w regularnych odstępach czasu.
licencja próbna wygaśnie przed uruchomieniem aplikacji
Jeśli wersja próbna wygaśnie przed uruchomieniem aplikacji przez użytkownika, aplikacja nie zostanie uruchomiona. Zamiast tego użytkownicy zobaczą okno dialogowe, które daje im możliwość zakupu aplikacji ze Sklepu.
Klient kupuje aplikację, gdy jest uruchomiona
Jeśli klient kupuje aplikację podczas jej działania, oto kilka akcji, które może wykonać Twoja aplikacja.
- Nie rób nic i pozwól im kontynuować w trybie próbnym do momentu ponownego uruchomienia aplikacji.
- Podziękuj za zakup lub wyświetl wiadomość.
- W trybie dyskretnym włącz funkcje dostępne z pełną licencją (lub wyłącz powiadomienia tylko do wersji próbnej).
Pamiętaj, aby wyjaśnić, jak aplikacja będzie zachowywać się podczas i po okresie bezpłatnej wersji próbnej, aby klienci nie byli zaskoczeni zachowaniem aplikacji. Aby uzyskać więcej informacji na temat opisywania aplikacji, zobacz Tworzenie opisów aplikacji.
Warunki wstępne
Ten przykład ma następujące wymagania wstępne:
- Projekt programu Visual Studio dla aplikacji platformy uniwersalnej systemu Windows (UWP), która jest przeznaczona dla systemu Windows 10 Anniversary Edition (10.0; Kompilacja 14393) lub nowsza wersja.
- W Centrum Partnerskim utworzono aplikację skonfigurowaną jako bezpłatna wersja próbna bez ograniczeń czasowych, a następnie opublikowano ją w Sklepie. Opcjonalnie możesz skonfigurować aplikację, aby nie można było jej odnaleźć w Sklepie podczas testowania. Aby uzyskać więcej informacji, zobacz nasze wskazówki dotyczące testowania .
W kodzie w tym przykładzie przyjęto założenie:
- Kod jest uruchamiany w kontekście strony, która zawiera ProgressRing o nazwie
workingProgressRingoraz TextBlock o nazwietextBlock. Te obiekty są używane do wskazywania wykonywania operacji asynchronicznej oraz wyświetlania komunikatów wyjściowych. - Plik kodu ma używającą instrukcji dla przestrzeni nazw Windows.Services.Store.
- Aplikacja to aplikacja pojedynczego użytkownika, która działa tylko w kontekście użytkownika, który uruchomił aplikację. Aby uzyskać więcej informacji, zobacz Zakupy w aplikacji i wersje próbne.
Notatka
Jeśli masz aplikację na pulpit korzystającą z Desktop Bridge, może być konieczne dodanie dodatkowego kodu, który nie jest wyświetlany w tym przykładzie, aby skonfigurować obiekt StoreContext. Aby uzyskać więcej informacji, zobacz Używanie klasy StoreContext w aplikacji desktopowej korzystającej z Desktop Bridge.
Przykład kodu
Kiedy aplikacja jest inicjowana, pobierz obiekt StoreAppLicense dla swojej aplikacji oraz obsłuż zdarzenie OfflineLicensesChanged, aby otrzymywać powiadomienia o zmianach licencji podczas działania aplikacji. Na przykład licencja aplikacji może ulec zmianie, jeśli okres próbny wygaśnie lub klient kupuje aplikację za pośrednictwem Sklepu. Po zmianie licencji uzyskaj nową licencję i odpowiednio włącz lub wyłącz funkcję aplikacji.
W tym momencie, jeśli użytkownik kupił aplikację, dobrym rozwiązaniem jest przekazanie opinii użytkownikowi, że stan licencjonowania uległ zmianie. Może być konieczne zwrócenie się do użytkownika o ponowne uruchomienie aplikacji, jeśli tak ją zakodowałeś. Ale uczynić to przejście tak bezproblemowe i bezbolesne, jak to możliwe.
private StoreContext context = null;
private StoreAppLicense appLicense = null;
// Call this while your app is initializing.
private async void InitializeLicense()
{
if (context == null)
{
context = StoreContext.GetDefault();
// If your app is a desktop app that uses the Desktop Bridge, you
// may need additional code to configure the StoreContext object.
// For more info, see https://aka.ms/storecontext-for-desktop.
}
workingProgressRing.IsActive = true;
appLicense = await context.GetAppLicenseAsync();
workingProgressRing.IsActive = false;
// Register for the licenced changed event.
context.OfflineLicensesChanged += context_OfflineLicensesChanged;
}
private async void context_OfflineLicensesChanged(StoreContext sender, object args)
{
// Reload the license.
workingProgressRing.IsActive = true;
appLicense = await context.GetAppLicenseAsync();
workingProgressRing.IsActive = false;
if (appLicense.IsActive)
{
if (appLicense.IsTrial)
{
textBlock.Text = $"This is the trial version. Expiration date: {appLicense.ExpirationDate}";
// Show the features that are available during trial only.
}
else
{
// Show the features that are available only with a full license.
}
}
}
Aby uzyskać pełny przykład aplikacji, zobacz przykład wStore.