Ostrzeżenie: Aplikacja błyskawiczna w Google Play nie będzie już dostępna. Od grudnia 2025 r. nie będzie można publikować aplikacji błyskawicznych w Google Play, a wszystkie interfejsy Instant API usług Google Play przestaną działać. Użytkownicy nie będą już otrzymywać aplikacji błyskawicznych z Google Play za pomocą jakiegokolwiek mechanizmu.
Wprowadzamy tę zmianę kierując się opinią deweloperów i naszymi ciągłymi inwestycjami w ulepszanie ekosystemu od czasu wprowadzenia Aplikacji błyskawicznych w Google Play.
Deweloperów, którzy chcą nadal optymalizować wzrost liczby użytkowników, zachęcamy do kierowania użytkowników do standardowej aplikacji lub gry za pomocą precyzyjnych linków , które w razie potrzeby przekierują ich do określonych ścieżek lub funkcji.
Wtyczka Aplikacja błyskawiczna w Google Play do silnika Unity konfiguruje projekt Unity tak, aby utworzyć wersję aplikacji błyskawicznej gry. W tym przewodniku opisujemy, jak zainstalować i używać tej wtyczki.
Pobieranie i importowanie wtyczki
Wtyczka jest częścią wtyczek Google Play do silnika Unity. Aby zaimportować wtyczkę:
- Pobierz najnowszą wersję z sekcji Wtyczki Google Play do silnika Unity.
- Zaimportuj plik
.unitypackage, wybierając w menu Unity IDE opcję Assets > Import package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet) i importując wszystkie elementy.
Funkcje edytora Unity
Zaimportuj wtyczkę, aby dodać w Unity podmenu Google > Play Instant. To podmenu zawiera te opcje:
Build Settings
Otwiera okno, które umożliwia przełączanie się między trybami programowania Installed (Zainstalowane) i Instant (Błyskawiczne). Przełączenie na Instant (Błyskawiczne) powoduje wprowadzenie tych zmian:
- Tworzy symbol definiowania skryptów o nazwie
PLAY_INSTANT, którego można używać w skryptach z#if PLAY_INSTANTi#endif. - Zarządza aktualizacjami pliku AndroidManifest.xml w przypadku niektórych wymaganych zmian, takich jak android:targetSandboxVersion.
Player Settings
Okno Player Settings (Ustawienia odtwarzacza) widoczne na rysunku 1 zawiera sugestie, które pomogą Ci zoptymalizować obsługę Aplikacji błyskawicznych w Google Play, tworzyć aplikacje z użyciem bardziej kompatybilnych interfejsów API grafiki i zmniejszyć rozmiar pliku APK.
Te ustawienia odtwarzacza są podzielone na Required (Wymagane) i Recommended (Zalecane). Jeśli ustawienie ma odpowiadający mu przycisk Update (Aktualizuj), kliknij go, aby zmienić ustawienie na preferowaną wartość.
Aby jeszcze bardziej zmniejszyć rozmiar pliku APK, otwórz Menedżera pakietów Unity i usuń wszystkie nieużywane pakiety.
Quick Deploy
Szybkie wdrażanie może zmniejszyć rozmiar aplikacji błyskawicznej opartej na Unity, pakując niektóre zasoby w pakiet zasobów. Gdy używasz szybkiego wdrażania, silnik gry Unity i ekran wczytywania są pakowane w plik APK aplikacji błyskawicznej, a po uruchomieniu aplikacja błyskawiczna pobiera pakiet zasobów z serwera.
Obsługa przepływów pracy związanych z instalacją
Celem wielu aplikacji błyskawicznych jest umożliwienie użytkownikom wypróbowania aplikacji przed zainstalowaniem jej pełnej wersji. Wtyczka Aplikacji błyskawicznej w Google Play do silnika Unity udostępnia interfejsy API do wyświetlania okna instalacji w Sklepie Play i przenoszenia stanu z aplikacji błyskawicznej do aplikacji instalowanej.
Wyświetlanie prośby o instalację
Aplikacja błyskawiczna z przyciskiem Install (Zainstaluj) może wyświetlać okno instalacji w Sklepie Play, wywołując z obsługi kliknięcia przycisku instalacji to polecenie:
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
Metoda ShowInstallPrompt() ma przeciążenie, które umożliwia wykonanie co najmniej jednej z tych czynności:
- Określanie, czy użytkownik anuluje proces instalacji. Zastąp
onActivityResult()w głównym działaniu aplikacji błyskawicznej i sprawdź, czy w określonymrequestCodewystępujeRESULT_CANCELED. - Przekazywanie ciągu odsyłacza instalacji za pomocą parametru
referrer. - Przekazywanie stanu bieżącej sesji gry za pomocą
PutPostInstallIntentStringExtra().
Te czynności są pokazane w tym przykładzie:
using Google.Play.Instant;
...
const int requestCode = 123;
var sessionInfo = /* Object serialized as a string representing player's current location, etc. */;
using (var activity = UnityPlayerHelper.GetCurrentActivity())
using (var postInstallIntent = InstallLauncher.CreatePostInstallIntent(activity))
{
InstallLauncher.PutPostInstallIntentStringExtra(postInstallIntent, "sessionInfo", sessionInfo);
InstallLauncher.ShowInstallPrompt(activity, requestCode, postInstallIntent, "test-referrer");
}
Jeśli użytkownik zakończy instalację aplikacji, Sklep Play ponownie uruchomi aplikację za pomocą podanego postInstallIntent. Zainstalowana aplikacja może pobrać wartość ustawioną w postInstallIntent za pomocą tego kodu:
var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");
Uwagi:
- Dodatki zawarte w
postInstallIntentmogą nie dotrzeć do zainstalowanej aplikacji, jeśli użytkownik zainstaluje aplikację, ale anuluje uruchomienie po instalacji. Przekazywanie dodatków do intencji lepiej sprawdza się w przypadku zachowywania stanu aktywnej sesji niż stanu trwałego. W tym drugim przypadku zapoznaj się z interfejsem Cookie API. - Każdy może utworzyć intencję z dodatkowymi polami, aby uruchomić zainstalowaną aplikację. Jeśli ładunek przyznaje coś wartościowego, zaprojektuj go tak, aby można go było użyć tylko raz, zaszyfruj go i zweryfikuj podpis na serwerze.
Korzystanie z interfejsu Cookie API
Interfejs Cookie API udostępnia metody przekazywania pliku cookie (np. identyfikatora gracza lub danych o ukończeniu poziomu) z aplikacji błyskawicznej do odpowiadającej jej aplikacji instalowanej. W przeciwieństwie do dodatków postInstallIntent stan pliku cookie jest dostępny nawet wtedy, gdy użytkownik nie uruchomi od razu aplikacji instalowanej. Na przykład aplikacja błyskawiczna może wywołać ten kod z obsługi kliknięcia przycisku instalacji:
using Google.Play.Instant;
...
var playerInfo = /* Object serialized as a string representing game levels completed, etc. */;
var cookieBytes = System.Text.Encoding.UTF8.GetBytes(playerInfo);
try
{
var maxCookieSize = CookieApi.GetInstantAppCookieMaxSize();
if (cookieBytes.Length > maxCookieSize)
{
UnityEngine.Debug.LogErrorFormat("Cookie length {0} exceeds limit {1}.", cookieBytes.Length, maxCookieSize);
}
else if (CookieApi.SetInstantAppCookie(cookieBytes))
{
UnityEngine.Debug.Log("Successfully set cookie. Now display the app install dialog...");
InstallLauncher.ShowInstallPrompt();
}
else
{
UnityEngine.Debug.LogError("Failed to set cookie.");
}
}
catch (CookieApi.InstantAppCookieException ex)
{
UnityEngine.Debug.LogErrorFormat("Failed to set cookie: {0}", ex);
}
Jeśli użytkownik zakończy instalację aplikacji, zainstalowana aplikacja może pobrać dane pliku cookie za pomocą tego kodu:
var cookieBytes = CookieApi.GetInstantAppCookie();
var playerInfoString = System.Text.Encoding.UTF8.GetString(cookieBytes);
if (!string.IsNullOrEmpty(playerInfoString))
{
// Initialize game state based on the cookie, e.g. skip tutorial level completed in instant app.
}