Zaktualizowano 27. grudnia 2022 przez Jan Bunk
Stworzyliśmy plik skryptu JavaScript z kilkoma przydatnymi funkcjami pomocniczymi, które ułatwiają komunikację między Twoją stroną a aplikacją.
Możesz skopiować ten skrypt (lub jego fragmenty) i hostować go samodzielnie albo załadować bezpośrednio z naszej strony.
Zobacz skrypt pomocniczy aplikacji
<script src="https://webtoapp.design/static/js/app-helper.js"></script>
Skrypt jest zminifikowany, ale nie zaciemniony, więc jeśli chcesz zobaczyć implementacje funkcji, możesz użyć formatera/upiększacza JavaScript.
executeWhenAppReady
Po każdym załadowaniu strony aplikacja najpierw musi wstrzyknąć trochę kodu JavaScript do załadowanej strony. Dzięki temu Twoja strona może wywoływać funkcje JavaScript takie jak setNotificationTopicSubscriptionStatus
. Niestety nie dzieje się to natychmiast, więc jeśli spróbujesz wywołać funkcję JavaScript, która współpracuje z aplikacją bardzo szybko po załadowaniu strony, może się okazać, że nie są jeszcze zdefiniowane.
Możesz tego uniknąć, otaczając kod współpracujący z aplikacją wywołaniem executeWhenAppReady
.
Gdy Twoja strona jest ładowana w przeglądarce, kod wewnątrz executeWhenAppReady
nie zostanie wykonany. To oznacza, że możesz też użyć tej funkcji, aby wykryć, czy Twoja strona została załadowana przez aplikację czy przez przeglądarkę. Inne metody na to są opisane tutaj.
<script>
// setNotificationTopicSubscriptionStatus interacts with the app, so it won't immediately be available after a new page was loaded
executeWhenAppReady(function () {
console.log("Website was loaded by the app and the app is ready for interaction");
// by running inside a executeWhenAppReady call, we avoid potentially calling it while still undefined
setNotificationTopicSubscriptionStatus(true, "new-games");
});
// remember to make the function async if you use await inside it!
// getSubscribedNotificationTopics also interacts with the app and returns a result that needs to be awaited
executeWhenAppReady(async function () {
var topics = (await getSubscribedNotificationTopics())["topics"];
});
</script>
getAppPlatform
Możesz użyć tej funkcji, aby sprawdzić, na jakim systemie operacyjnym obecnie użytkownik korzysta z aplikacji.
Tej funkcji nie trzeba opakowywać w executeWhenAppReady
. Możesz jej też użyć, żeby sprawdzić, czy użytkownik korzysta z aplikacji (sprawdź, czy zwrócona wartość nie jest nullem). To jednak nie gwarantuje, że aplikacja jest już gotowa do interakcji z JavaScriptem. Jeśli chcesz wywoływać funkcje JavaScript, które współpracują z aplikacją, nadal powinieneś opakować je w executeWhenAppReady
.
<script>
// possible return values are:
// "android"
// "ios"
// null -> not using app, most likely a regular browser
var platform = getAppPlatform();
</script>
isInCustomTab, getCustomTabData, closeCustomTab
Te funkcje służą do zarządzania custom tabami.