Flow ve paywallları görüntüleme - iOS

Flow ve paywallları görüntüle
Flows BETA Built in Flow builder — renders natively on device, no WebView
Paywall Builder paywalls All existing Paywall Builder content

Bir flow veya paywall oluştturduysanız, bunu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmenize gerek yok. Söz konusu flow veya paywall, içinde neyin gösterileceğini ve nasıl gösterileceğini zaten içeriyor.

Aşağıda kullanılan AdaptyUI.FlowConfiguration nesnesini edinmek için Flow ve paywallları getir sayfasına bakın.

SwiftUI’da flow ve paywallları sunma

Modal görünüm olarak sunma

Bir flow veya paywall’ı cihaz ekranında modal görünüm olarak göstermek için SwiftUI’da .flow değiştiricisini kullanın. Minimum çağrı için isPresented, flowConfiguration ve dört zorunlu callback gereklidir:

.flow(
    isPresented: $flowPresented,
    flowConfiguration: <AdaptyUI.FlowConfiguration>,
    didFailPurchase: { _, _ in /* handle the error */ },
    didFinishRestore: { _ in /* check access level and dismiss */ },
    didFailRestore: { _ in /* handle the error */ },
    didReceiveError: { _ in flowPresented = false }
)

Daha fazla kontrol için didPerformAction gibi isteğe bağlı callbackler ekleyerek buton tıklamalarını yönetebilir ve didFinishPurchase ile başarılı satın alımları yakalayabilirsiniz:

@State var flowPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the flow or paywall

var body: some View {
  Text("Hello, AdaptyUI!")
      .flow(
          isPresented: $flowPresented,
          flowConfiguration: <AdaptyUI.FlowConfiguration>,
          didPerformAction: { action in
              switch action {
                  case .close:
                      flowPresented = false
                  default:
                      // Handle other actions
                      break
              }
          },
          didFailPurchase: { product, error in /* handle the error */ },
          didFinishRestore: { profile in /* check access level and dismiss */ },
          didFailRestore: { error in /* handle the error */ },
          didReceiveError: { error in flowPresented = false }
      )
}

Parametreler:

ParametreZorunluAçıklama
isPresentedzorunluFlow veya paywall ekranının gösterilip gösterilmediğini yöneten bir binding.
flowConfigurationzorunluFlow veya paywallın görsel ayrıntılarını içeren AdaptyUI.FlowConfiguration nesnesi. AdaptyUI.getFlowConfiguration(forFlow:) metodunu kullanın. Daha fazla bilgi için Flow ve paywallları getir sayfasına bakın.
didFailPurchasezorunluAdapty.makePurchase() başarısız olduğunda çağrılır.
didFinishRestorezorunluAdapty.restorePurchases() başarıyla tamamlandığında çağrılır.
didFailRestorezorunluAdapty.restorePurchases() başarısız olduğunda çağrılır.
didReceiveErrorzorunluBir render hatası veya flow scriptinden kaynaklanan çalışma zamanı hatası oluştuğunda çağrılır (örneğin, bir JavaScript istisnası, AdaptyUIError kodu 4105). Render hataları için Adapty Destek ile iletişime geçin.
fullScreenisteğe bağlıFlow veya paywallın tam ekran modunda mı yoksa bir sheet olarak mı görüneceğini belirler. Varsayılan değer true.
didAppearisteğe bağlıFlow veya paywall görünümü sunulduğunda çağrılır.
didDisappearisteğe bağlıFlow veya paywall görünümü kapatıldığında çağrılır.
didPerformActionisteğe bağlıKullanıcı bir butona tıkladığında çağrılır. İki action ID önceden tanımlıdır: close ve openURL; diğerleri özeldir ve builder’da ayarlanabilir.
didSelectProductisteğe bağlıKullanıcı veya sistem tarafından satın alım için bir ürün seçildiğinde çağrılır.
didStartPurchaseisteğe bağlıKullanıcı satın alma sürecini başlattığında çağrılır.
didFinishPurchaseisteğe bağlıAdapty.makePurchase() başarıyla tamamlandığında çağrılır.
didFinishWebPaymentNavigationisteğe bağlıWeb ödeme navigasyonu tamamlandığında çağrılır.
didStartRestoreisteğe bağlıKullanıcı geri yükleme sürecini başlattığında çağrılır.
didFailLoadingProductsisteğe bağlıÜrün yüklenirken hata oluştuğunda çağrılır. Yüklemeyi yeniden denemek için true döndürün.
didPartiallyLoadProductsisteğe bağlıÜrünler kısmen yüklendiğinde çağrılır.
showAlertItemisteğe bağlıFlow veya paywallın üzerinde alert öğelerinin gösterimini yöneten bir binding.
showAlertBuilderisteğe bağlıAlert görünümünü render eden bir fonksiyon.
placeholderBuilderisteğe bağlıFlow veya paywall yüklenirken placeholder görünümünü render eden bir fonksiyon. Varsayılan olarak bir ProgressView kullanılır.

Parametreler hakkında daha fazla bilgi için iOS - Olayları yönetme konusuna bakın.

Modal olmayan görünüm olarak sunma

Flow ve paywallları, uygulamanızın navigasyon akışında navigation destination veya satır içi görünüm olarak da sunabilirsiniz. SwiftUI görünümlerinizde doğrudan AdaptyFlowView kullanın:

AdaptyFlowView(
    flowConfiguration: <AdaptyUI.FlowConfiguration>,
    didFailPurchase: { product, error in
        // Handle purchase failure
    },
    didFinishRestore: { profile in
        // Handle successful restore
    },
    didFailRestore: { error in
        // Handle restore failure
    },
    didReceiveError: { error in
        // Handle the error (rendering or JS exception from the flow script).
    }
)

UIKit’te flow ve paywallları sunma

Flow veya paywall’ı cihaz ekranında göstermek için şu adımları izleyin:

  1. Göstermek istediğiniz görsel flow’u AdaptyUI.flowController(with:delegate:) metodunu kullanarak başlatın:

    import AdaptyUI
    
    let visualFlow = try AdaptyUI.flowController(
        with: <AdaptyUI.FlowConfiguration>,
        delegate: <AdaptyFlowControllerDelegate>
    )

    İstek parametreleri:

    ParametreDurumAçıklama
    flowConfigurationzorunluFlow veya paywallın görsel ayrıntılarını içeren AdaptyUI.FlowConfiguration nesnesi. AdaptyUI.getFlowConfiguration(forFlow:) metodunu kullanın. Daha fazla bilgi için Flow ve paywallları getir konusuna bakın.
    delegatezorunluFlow ve paywall olaylarını dinlemek için AdaptyFlowControllerDelegate. Daha fazla bilgi için Flow & paywall olaylarını yönetme konusuna bakın.

    Döndürür:

    NesneAçıklama
    AdaptyFlowControllerİstenen flow veya paywall ekranını temsil eden nesne.
  2. Nesne başarıyla oluşturulduktan sonra cihaz ekranında gösterebilirsiniz:

    present(visualFlow, animated: true)

Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğine dair gerçek dünya örneği görmek ister misiniz? Paywall gösterme, satın alma yapma ve diğer temel işlevleri içeren tam kurulumu gösteren örnek uygulamalarımıza göz atın.

Paywall Builder kullanarak bir paywall özelleştirdiyseniz, bunu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmenize gerek yok. Söz konusu paywall, içinde neyin gösterileceğini ve nasıl gösterileceğini zaten içeriyor.

Aşağıda kullanılan AdaptyUI.PaywallConfiguration nesnesini edinmek için Paywall Builder paywalllarını ve konfigürasyonlarını getir sayfasına bakın.

SwiftUI’da paywallları sunma

Modal görünüm olarak sunma

Görsel paywall’ı cihaz ekranında modal görünüm olarak göstermek için SwiftUI’da .paywall değiştiricisini kullanın:

@State var paywallPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the paywall

var body: some View {
  Text("Hello, AdaptyUI!")
      .paywall(
          isPresented: $paywallPresented,
          paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
          didPerformAction: { action in
              switch action {
                  case .close:
                      paywallPresented = false
                  default:
                      // Handle other actions
                      break
              }
          },
          didFinishPurchase: { product, profile in paywallPresented = false },
          didFailPurchase: { product, error in /* handle the error */ },
          didFinishRestore: { profile in /* check access level and dismiss */  },
          didFailRestore: { error in /* handle the error */ },
          didFailRendering: { error in paywallPresented = false }
      )
}

Parametreler:

ParametreZorunluAçıklama
isPresentedzorunluPaywall ekranının gösterilip gösterilmediğini yöneten bir binding.
paywallConfigurationzorunluPaywallın görsel ayrıntılarını içeren AdaptyUI.PaywallConfiguration nesnesi. AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:) metodunu kullanın. Daha fazla bilgi için Paywall Builder paywalllarını ve konfigürasyonlarını getir konusuna bakın.
didFailPurchasezorunluAdapty.makePurchase() başarısız olduğunda çağrılır.
didFinishRestorezorunluAdapty.restorePurchases() başarıyla tamamlandığında çağrılır.
didFailRestorezorunluAdapty.restorePurchases() başarısız olduğunda çağrılır.
didFailRenderingzorunluArayüz render edilirken hata oluşursa çağrılır. Bu durumda Adapty Destek ile iletişime geçin.
fullScreenisteğe bağlıPaywallın tam ekran modunda mı yoksa bir modal olarak mı görüneceğini belirler. Varsayılan değer true.
didAppearisteğe bağlıPaywall görünümü sunulduğunda çağrılır.
didDisappearisteğe bağlıPaywall görünümü kapatıldığında çağrılır.
didPerformActionisteğe bağlıKullanıcı bir butona tıkladığında çağrılır. Farklı butonların farklı action ID’leri vardır. İki action ID önceden tanımlıdır: close ve openURL; diğerleri özeldir ve builder’da ayarlanabilir.
didSelectProductisteğe bağlıKullanıcı veya sistem tarafından satın alım için bir ürün seçildiğinde çağrılır.
didStartPurchaseisteğe bağlıKullanıcı satın alma sürecini başlattığında çağrılır.
didFinishPurchaseisteğe bağlıAdapty.makePurchase() başarıyla tamamlandığında çağrılır.
didFinishWebPaymentNavigationisteğe bağlıWeb ödeme navigasyonu tamamlandığında çağrılır.
didStartRestoreisteğe bağlıKullanıcı geri yükleme sürecini başlattığında çağrılır.
didFailLoadingProductsisteğe bağlıÜrün yüklenirken hata oluştuğunda çağrılır. Yüklemeyi yeniden denemek için true döndürün.
didPartiallyLoadProductsisteğe bağlıÜrünler kısmen yüklendiğinde çağrılır.
showAlertItemisteğe bağlıPaywallın üzerinde alert öğelerinin gösterimini yöneten bir binding.
showAlertBuilderisteğe bağlıAlert görünümünü render eden bir fonksiyon.
placeholderBuilderisteğe bağlıPaywall yüklenirken placeholder görünümünü render eden bir fonksiyon.

Parametreler hakkında daha fazla bilgi için iOS - Olayları yönetme konusuna bakın.

Modal olmayan görünüm olarak sunma

Paywallları, uygulamanızın navigasyon akışında navigation destination veya satır içi görünüm olarak da sunabilirsiniz. SwiftUI görünümlerinizde doğrudan AdaptyPaywallView kullanın:

AdaptyPaywallView(
    paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
    didFailPurchase: { product, error in
        // Handle purchase failure
    },
    didFinishRestore: { profile in
        // Handle successful restore
    },
    didFailRestore: { error in
        // Handle restore failure
    },
    didFailRendering: { error in
        // Handle rendering error
    }
)

UIKit’te paywallları sunma

Görsel paywall’ı cihaz ekranında göstermek için şu adımları izleyin:

  1. Göstermek istediğiniz görsel paywall’ı .paywallController(for:products:viewConfiguration:delegate:) metodunu kullanarak başlatın:

    import AdaptyUI
    
    let visualPaywall = AdaptyUI.paywallController(
        with: <paywall configuration object>,
        delegate: <AdaptyPaywallControllerDelegate>
    )

    İstek parametreleri:

    ParametreDurumAçıklama
    paywall configurationzorunluPaywallın görsel ayrıntılarını içeren AdaptyUI.PaywallConfiguration nesnesi. AdaptyUI.getPaywallConfiguration(forPaywall:locale:) metodunu kullanın. Daha fazla bilgi için Paywall Builder paywalllarını ve konfigürasyonlarını getir konusuna bakın.
    delegatezorunluPaywall olaylarını dinlemek için AdaptyPaywallControllerDelegate. Daha fazla bilgi için Paywall olaylarını yönetme konusuna bakın.

    Döndürür:

    NesneAçıklama
    AdaptyPaywallControllerİstenen paywall ekranını temsil eden nesne.
  2. Nesne başarıyla oluşturulduktan sonra cihaz ekranında gösterebilirsiniz:

    present(visualPaywall, animated: true)

Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğine dair gerçek dünya örneği görmek ister misiniz? Paywall gösterme, satın alma yapma ve diğer temel işlevleri içeren tam kurulumu gösteren örnek uygulamalarımıza göz atın.