Przejdź do treści

Poradnik · Capacitor, Ionic, Cordova, PWA

Dodaj program partnerski lub poleceń do swojej aplikacji Capacitor lub Ionic.

@influto/web działa wszędzie tam, gdzie Twój kod działa w WebView lub w przeglądarce: Capacitor (Ionic React, Angular i Vue), Cordova, zainstalowane PWA i Trusted Web Activities. Trzyma się tego samego kontraktu co natywne SDK InfluTo i dodaje sposoby odbierania polecenia dostępne tylko w webie, dzięki którym dopasowanie jest dokładne.

Zaktualizowano: 1 listopada 2026

W skrócie

Zainstaluj @influto/web, a w Capacitor także @capacitor/device, @capacitor/preferences i @capacitor/app. Wywołaj InfluTo.initialize raz, gdy platforma jest gotowa, z adapterami Capacitor. Wywołaj listenForCapacitorLaunchUrls(InfluTo), żeby deep linki przejmowały polecenia, a potem checkAttribution i identifyUser. Na Androidzie przekaż Play Install Referrer do captureInstallReferrer, żeby dopasowanie było dokładne. Dla zakupów podaj binding RevenueCat, np. revenueCatCapacitor(Purchases), a bez RevenueCat źródło zakupów, np. capgoNativePurchasesSource dla @capgo/native-purchases. Zaplanuj na to popołudnie; większość czasu zajmą zakupy.

Dlaczego aplikacje WebView mogą dokładnie przypisać więcej poleceń

Aplikacja natywna dostaje dokładne dopasowanie z wpisanego kodu, a kliknięcie, które przechodzi przez sklep, jest dopasowywane dopiero później. Aplikacja WebView może dostać sam kod na trzy sposoby:

  • Adres startowy. Ustaw Settings → General → Web app URL, a linki polecające będą kierować tam odwiedzających z komputerów (oraz z telefonów, gdy nie masz strony w sklepie dla ich platformy), z dopisanymi influto_code i influto_click. initialize odczytuje oba parametry i czyści pasek adresu.

  • Deep linki. listenForCapacitorLaunchUrls(InfluTo) przekazuje do SDK adres z zimnego startu i każde zdarzenie appUrlOpen. W Cordova wywołaj InfluTo.handleLaunchUrl(url).

  • Play Install Referrer. Linki Google Play z InfluTo niosą kod i kliknięcie w parametrze referrer Google Play. Odczytaj go przy pierwszym uruchomieniu wtyczką Install Referrer i przekaż do captureInstallReferrer.

Bez przeniesionego kodu InfluTo wraca do dopasowania po kliknięciu linku w ciągu 72 godzin. Takie dopasowanie nigdy nie porównuje cech urządzenia.

Krok 1: instalacja

Dodaj pakiet. W Capacitor trzy wtyczki są opcjonalne, ale zalecane: @capacitor/device dla danych urządzenia, @capacitor/preferences dla pamięci, która przetrwa reset WebView, i @capacitor/app dla deep linków. Po ich dodaniu uruchom npx cap sync. Brakujące wtyczki zastępują domyślne mechanizmy przeglądarki.

Nie masz bundlera? Załaduj wersję ze znacznikiem script z https://cdn.jsdelivr.net/npm/@influto/web@1/dist/index.global.js i używaj window.InfluTo. Zawiera tylko rdzeń SDK; pomocniki z podścieżek wymagają bundlera.

npm install @influto/web
# Capacitor / Ionic apps (device info, storage, deep links):
npm install @capacitor/device @capacitor/preferences @capacitor/app

Krok 2: zainicjuj raz, we właściwym momencie

Wywołaj initialize raz, w korzeniu aplikacji, i poczekaj na wynik. Przy błędzie rzuca InfluToApiError (status, body): przechwyć go, zaloguj i działaj dalej. Kolejne uruchomienie spróbuje ponownie. Tabela poniżej pokazuje, kiedy wywołać go w danym środowisku.

Klucz API (it_…, w Setup & SDK) obejmuje development i produkcję. Trzymaj go w pliku .env.local wykluczonym z gita i odczytuj przez bundler. Typowy start Capacitor w aplikacji z RevenueCat, po kolei:

import InfluTo from '@influto/web';
import { capacitorAdapters, listenForCapacitorLaunchUrls } from '@influto/web/capacitor';
import { revenueCatCapacitor } from '@influto/web/revenuecat';
import { Purchases } from '@revenuecat/purchases-capacitor';

export async function startInfluTo() {
  await Purchases.configure({ apiKey: 'appl_…' }); // RevenueCat apps: configure it first
  try {
    await InfluTo.initialize({
      apiKey: import.meta.env.VITE_INFLUTO_API_KEY,
      appVersion: '1.4.0',
      ...(await capacitorAdapters()),
      revenueCat: revenueCatCapacitor(Purchases),
    });
  } catch (error) {
    console.warn('InfluTo initialize failed', error); // retried on the next launch
    return;
  }
  await listenForCapacitorLaunchUrls(InfluTo); // deep links → referral claim
  const attribution = await InfluTo.checkAttribution();
  const { appUserID } = await Purchases.getAppUserID();
  await InfluTo.identifyUser(appUserID);
}
ŚrodowiskoKiedy wywołać initialize
Capacitor / IonicPrzy starcie aplikacji, gdy platforma jest gotowa. Nie wewnątrz strony Ionic, która może być zapisana w pamięci podręcznej i otwierana ponownie
CordovaPo deviceready: najpierw await whenDeviceReady() z @influto/web/cordova, potem przekaż ...cordovaAdapters() do initialize
PWA / przeglądarkaPrzy załadowaniu strony

Krok 3: dokładnie przypisuj instalacje z Google Play

Na Androidzie odczytaj ciąg referrera przy pierwszym uruchomieniu za pomocą @capgo/capacitor-install-referrer lub cordova-play-install-referrer i przekaż go po initialize, przed checkAttribution. Kod przechwycony później otwiera na nowo wcześniejszą odpowiedź „organic”, a instalacja z przypisaniem zachowuje swojego twórcę.

await InfluTo.captureInstallReferrer(referrer); // the raw referrer string from the plugin
const attribution = await InfluTo.checkAttribution();

Krok 4: pozwól użytkownikom wpisać kod

applyCode(code) sprawdza kod wpisany przez użytkownika i stosuje go, jeśli jest prawidłowy. Kody są przycinane z białych znaków i zamieniane na wielkie litery, a nieprawidłowy zwraca valid: false z error_code, np. CODE_NOT_FOUND lub CODE_EXPIRED.

W React i Ionic React ReferralCodeInput z @influto/web/react to zwykły formularz bez stylów. Wstępnie wypełnia kod przypisany z linku i stosuje go po wysłaniu. W Angular, Vue lub bez frameworka zbuduj pole na bazie applyCode.

Krok 5: podłącz zakupy

InfluTo płaci prowizję tylko od zakupów zweryfikowanych w sklepie. Wybierz jedną ścieżkę dla każdej platformy:

  • RevenueCat: przekaż binding jako revenueCat: revenueCatCapacitor(Purchases) dla @revenuecat/purchases-capacitor 7.5.10+, revenueCatCordova(window.Purchases) dla cordova-plugin-purchases lub revenueCatJs dla purchases-js. Podłącz go przed checkAttribution, bo atrybut jest zapisywany w chwili znalezienia polecenia. Nieudane zapisy są ponawiane do 3 razy.

  • Store-direct: przekaż purchaseSource (zobacz tabelę). Gdy aplikacja ma w Settings → Validation ustawiony tryb store-direct, initialize zgłasza nowe zakupy i uzupełnia istniejące, każdy tylko raz.

Na iOS store-direct wymaga podpisanej transakcji StoreKit 2: capgoNativePurchasesSource ją przekazuje, a przy cordova-plugin-purchase musisz sprawdzić, czy Twoja konfiguracja ją udostępnia. Na Androidzie te źródła nie niosą ceny, więc produkty jednorazowe zgłaszaj samodzielnie z price i currency. Inaczej zapiszą się jako 0 $.

W TWA Digital Goods API nie ma zdarzenia zakupu, więc wywołuj InfluTo.syncExistingPurchases() po każdej płatności. digitalGoodsSource sam sprawdzi cenę.

ŚrodowiskoWtyczka zakupówŹródło
Capacitor@capgo/native-purchasescapgoNativePurchasesSource(NativePurchases) z /capacitor
Cordovacordova-plugin-purchase v13cordovaPurchaseSource(CdvPurchase.store) z /cordova
TWA w Google PlayDigital Goods API (Chrome 101+)digitalGoodsSource() z /pwa

Pułapki platform

Większość nieudanych integracji WebView sprowadza się do jednej z tych rzeczy:

  • Pamięć w Capacitor. Gdy zainstalowano @capacitor/preferences, SDK trzyma tam swój stan. localStorage w WebView jest czyszczone, gdy zmieni się androidScheme lub iosScheme.

  • ionic serve. W buildzie deweloperskim w przeglądarce wtyczka RevenueCat Capacitor jest atrapą, więc zapisy atrybutów nic tam nie robią. Testuj na urządzeniu.

  • Cordova domyślnie blokuje API. Nowy szablon wymaga wpisu access origin dla https://influ.to w config.xml oraz connect-src https://influ.to w Content-Security-Policy. RevenueCat wycofał swoją wtyczkę do Cordovy, więc w nowej aplikacji lepiej wybrać Capacitor.

  • Przeglądarki i PWA. W przeglądarce lub PWA zawsze przekazuj platform (ios lub android) do reportPurchase. SDK nie zgaduje, gdy wykryje web. Aplikacje webowe na ekranie głównym iOS nie mogą sprzedawać zakupów w aplikacji, ale atrybucja nadal działa.

Krok 6: przetestuj

Zakupy testowe nie przesuwają pieniędzy ani nie zmieniają Twoich statystyk:

  1. 1

    Sprawdź Setup & SDK. Po pierwszym udanym initialize zobaczysz „SDK connected” z platformą, @influto/web i wersją SDK. debug: true loguje każdy krok.

  2. 2

    Zasymuluj zakup. Przycisk Zasymuluj zakup w Setup & SDK wysyła testowy zakup sandbox prawdziwym potokiem InfluTo. Wpisz jeden ze swoich kodów, żeby zobaczyć, jak jest rozpoznawany.

  3. 3

    Uruchom polecaną instalację na urządzeniu. Otwórz link polecający twórcy na urządzeniu testowym, zainstaluj aplikację, uruchom ją i kup jako tester sandbox, TestFlight lub licencji. Dziennik integracji przełączony na Sandbox pokaże przypisany zakup.

clearAttribution() usuwa zapisaną atrybucję, kod i kod z uruchomienia, żeby można było powtórzyć test. Jeśli agent kodujący jest połączony przez MCP, może wykonać te sprawdzenia za Ciebie.

SDK partnerskie dla Capacitor i Ionic: odpowiedzi.

Czy jest SDK partnerskie dla Capacitor i Ionic?

Tak. @influto/web w npm, z podścieżkami dla Capacitor, Cordova, PWA, powiązań z RevenueCat i Reacta. Nie ma zależności i działa w każdej przeglądarce oraz WebView obsługującej ES2019.

Czy działa z Ionic Angular i Ionic Vue?

Tak. SDK nie jest przywiązane do frameworka, a Ionic React, Angular i Vue działają na Capacitorze. Gotowe pole na kod jest tylko dla Reacta (@influto/web/react), więc w Angularze lub Vue budujesz je na applyCode.

Czy mogę dokładnie przypisywać instalacje z Google Play?

Tak. Linki do Google Play z InfluTo niosą kod w Install Referrer podpisanym przez Play. Odczytaj go przez @capgo/capacitor-install-referrer lub cordova-play-install-referrer i przekaż do captureInstallReferrer przed checkAttribution.

Które wtyczki do zakupów są obsługiwane?

Dla zakupów bezpośrednio w sklepie: @capgo/native-purchases w Capacitorze, cordova-plugin-purchase v13 w Cordovie oraz Digital Goods API w TWA w Google Play. Dla RevenueCat: @revenuecat/purchases-capacitor 7.5.10+, @revenuecat/purchases-js 1.4.0+ lub cordova-plugin-purchases albo dowolny obiekt z metodą setAttributes.

Czy działa w PWA?

Tak. Ustaw Web app URL, żeby linki polecające przekazywały kod do Twojej aplikacji. Atrybucja i wpisywane kody działają w każdej przeglądarce. TWA w Google Play może sprzedawać przez Play Billing z digitalGoodsSource(). Aplikacje webowe na ekranie głównym iOS nie mogą sprzedawać zakupów w aplikacji.

Ile to kosztuje?

0 $ miesięcznie. Za każdy zweryfikowany zakup płacisz ustaloną przez siebie prowizję plus 10% tego samego przychodu (7%, 5% lub 3% przy większym wolumenie). Portfel przedpłacony zaczyna się od 50 $ i podlega zwrotowi. InfluTo wypłaca twórcom co miesiąc przez Stripe Connect w 33 krajach, gdy zarobią 20 $.

Wypuść kody polecające w następnym buildzie Capacitor.

Jeden pakiet npm, jedna ścieżka walidacji, zwrotny depozyt. 0 $ miesięcznie, a 10% tylko od przychodu, który przyniosą twórcy.

Zacznij za darmo