Flutter SDK'da buton eylemlerine yanıt verme

Adapty builder kullanarak flow veya paywall oluşturuyorsanız, butonları doğru şekilde ayarlamak çok önemlidir:

  1. Builder’da bir buton ekleyin ve ona mevcut bir eylem atayın ya da özel bir eylem ID’si oluşturun.
  2. Uygulamanızda atadığınız her eylemi işlemek için kod yazın.

Bu kılavuz, kodunuzda özel ve mevcut eylemlerin nasıl işleneceğini göstermektedir.

Görünümü kapatma ve URL’leri açma işlemleri, varsayılan flowViewDidPerformAction uygulaması tarafından otomatik olarak gerçekleştirilir ve SDK’nın kendisi satın alma ile geri yükleme işlemlerini yönetir. Giriş yapma veya başka bir flow açma gibi diğer tüm buton eylemleri, uygulama kodunda uygun yanıtların yazılmasını gerektirir. Tamamlanan satın alma ve geri yükleme işlemlerine yanıt verme ise zorunlu gözlemci callback’lerinde gerçekleşir — bkz. Flow & paywall olaylarını yönetme.

Flow ve paywallları kapatma

Flow veya paywallınıza kapatma düğmesi eklemek için builder’da bir düğme ekleyin ve bu düğmeye Close aksiyonunu atayın. Herhangi bir kod yazmanıza gerek yok: varsayılan flowViewDidPerformAction implementasyonu, CloseAction aldığında görünümü otomatik olarak kapatır.

Android sistem Back düğmesi artık görünümü varsayılan olarak kapatmıyor. Bu düğme, flowViewDidPerformAction’a AndroidSystemBackAction olarak iletilir; back düğmesinin flow veya paywallı kapatmasını istiyorsanız bunu kendiniz ele almanız gerekir.

Özel bir davranışa ihtiyaç duyuyorsanız flowViewDidPerformAction metodunu override edin — örneğin, v3’te olduğu gibi Android sistem geri tuşunda da görünümü kapatmak için:

void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
    switch (action) {
      case const CloseAction():
      case const AndroidSystemBackAction():
        view.dismiss();
        break;
      case OpenUrlAction(:final url, :final openIn):
        AdaptyUI().openUrl(url, openIn: openIn);
        break;
      default:
        break;
    }
}

flowViewDidPerformAction metodunu override etmek, varsayılan implementasyonun tamamının yerini alır — varsayılan kapatma ve URL açma davranışını korumak istiyorsanız CloseAction ve OpenUrlAction case’lerini eklemeyi unutmayın.

Flow ve paywall’lardan URL açma

Bir grup bağlantı eklemek istiyorsanız (ör. kullanım koşulları ve satın alma geri yükleme), builder’da bir Link öğesi ekleyin ve bunu Open URL eylemiyle düğmelerle aynı şekilde yönetin.

Bir bağlantı açan düğme eklemek için (ör. Terms of use veya Privacy policy), builder’da bir düğme ekleyin, Open URL eylemini atayın ve açmak istediğiniz URL’yi girin. Varsayılan flowViewDidPerformAction implementasyonu URL’yi AdaptyUI().openUrl aracılığıyla yerel olarak açar; kontrol panelindeki uygulama içi veya harici tarayıcı ayarını dikkate alır. Bu nedenle herhangi bir kod yazmanız gerekmez.

Varsayılan davranış çoğu durum için yeterlidir. URL’leri kendiniz açmak istiyorsanız handler’ı geçersiz kılın:

void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
    switch (action) {
      case const CloseAction():
        view.dismiss();
        break;
      case OpenUrlAction(url: final url):
        // Open the URL in whatever way fits your app
        break;
      default:
        break;
    }
}

Uygulamaya giriş yapma

Kullanıcıların uygulamanıza giriş yapmasını sağlayan bir buton eklemek için:

  1. Builder’da bir buton ekleyin ve Login aksiyonunu atayın.
  2. Uygulama kodunuzda, kullanıcınızı tanımlayan login aksiyonu için bir işleyici uygulayın.
void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
    switch (action) {
      case CustomAction(action: 'login'):
        // Navigate to your login screen in whatever way fits your app
        break;
      default:
        break;
    }
}

Özel eylemleri yönetme

Başka eylemleri yöneten bir buton eklemek için:

  1. Builder’da bir buton ekleyin, Custom eylemini atayın ve bir ID verin.
  2. Uygulama kodunuzda, oluşturduğunuz eylem ID’si için bir işleyici uygulayın.

Örneğin, başka bir abonelik teklifleri veya tek seferlik satın alma seçenekleri setiniz varsa, başka bir flow veya paywall görüntüleyecek bir buton ekleyebilirsiniz:

void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
   switch (action) {
     case CustomAction(action: 'openNewPaywall'):
       // Display another flow or paywall
       break;
     default:
       break;
   }
}

Adapty paywall builder kullanarak paywall oluşturuyorsanız, butonları doğru şekilde ayarlamak çok önemlidir:

  1. Paywall builder’a bir buton ekleyin ve bu butona mevcut bir eylem atayın ya da özel bir eylem ID’si oluşturun.
  2. Uygulamanızda, atadığınız her eylemi işleyecek kodu yazın. Bu rehber, kodunuzda özel ve mevcut aksiyonları nasıl ele alacağınızı gösterir.

Yalnızca satın almalar ve yenilemeler otomatik olarak işlenir. Paywall’ları kapatma veya bağlantı açma gibi diğer tüm buton aksiyonları, uygulama kodunda uygun yanıtların uygulanmasını gerektirir.

Paywall’ları kapatma

Paywall’ınızı kapatacak bir buton eklemek için:

  1. Paywall builder’da bir buton ekleyin ve ona Close eylemini atayın.
  2. Uygulama kodunuzda CloseAction ve AndroidSystemBackAction eylemleri için bir handler uygulayın.

Flutter SDK’da CloseAction ve AndroidSystemBackAction eylemleri varsayılan olarak paywall’ı kapatır. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz. Örneğin, bir paywall’ı kapatmak başka bir paywall’ın açılmasını tetikleyebilir.

void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
    switch (action) {
      case const CloseAction():
      case const AndroidSystemBackAction():
        view.dismiss();
        break;
      default:
        break;
    }
}

Paywall’lardan URL açma

Bir grup link eklemek istiyorsanız (ör. kullanım koşulları ve satın alma restorasyon), paywall builder’da bir Link öğesi ekleyin ve bunu Open URL eylemine sahip butonlarla aynı şekilde yönetin.

Paywall’ınızdan link açan bir buton eklemek için (ör. Kullanım Koşulları veya Gizlilik Politikası):

  1. Paywall builder’da bir buton ekleyin, Open URL eylemini atayın ve açmak istediğiniz URL’yi girin.
  2. Uygulama kodunuzda, alınan URL’yi bir tarayıcıda açan openUrl eylemi için bir handler uygulayın.
// You have to install url_launcher plugin in order to handle urls:
// https://pub.dev/packages/url_launcher

void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
    switch (action) {
      case OpenUrlAction(url: final url):
        final Uri uri = Uri.parse(url);
        launchUrl(uri, mode: LaunchMode.inAppBrowserView);
        break;
      default:
        break;
    }
}

Uygulamaya giriş yapma

Kullanıcıların uygulamanıza giriş yapmasını sağlayan bir buton eklemek için:

  1. Paywall builder’da bir buton ekleyin ve ona Login eylemini atayın.
  2. Uygulama kodunuzda, kullanıcıyı tanımlayan login eylemi için bir işleyici uygulayın.
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
    switch (action) {
      case CustomAction(action: 'login'):
        // Navigate to your login screen in whatever way fits your app
        break;
      default:
        break;
    }
}

Özel eylemleri yönetme

Diğer eylemleri yönetecek bir buton eklemek için:

  1. Paywall builder’da bir buton ekleyin, Custom eylemini atayın ve bir ID belirleyin.
  2. Uygulama kodunuzda, oluşturduğunuz eylem ID’si için bir handler uygulayın.

Örneğin, başka bir abonelik teklifi veya tek seferlik satın alma seçeneğiniz varsa, başka bir paywall görüntüleyen bir buton ekleyebilirsiniz:

void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
   switch (action) {
     case CustomAction(action: 'openNewPaywall'):
       // Başka bir paywall göster
       break;
     default:
       break;
   }
}