iOS SDK'da web paywalllarını uygulama

Başlamadan önce kontrol panelinde web paywallınızı yapılandırdığınızdan ve Adapty SDK 3.6.1 veya sonraki bir sürümünü yüklediğinizden emin olun.

Web paywalllarını açma

Kendiniz geliştirdiğiniz bir paywall üzerinde çalışıyorsanız, web paywalllarını SDK metodu aracılığıyla ele almanız gerekir. .openWebPaywall metodu:

  1. Adapty’nin belirli bir kullanıcıya gösterilen paywallı yönlendirildikleri web sayfasıyla ilişkilendirebilmesi için benzersiz bir URL oluşturur.
  2. Kullanıcılarınızın uygulamaya ne zaman döndüğünü izler ve ardından profil erişim haklarının güncellenip güncellenmediğini belirlemek için kısa aralıklarla .getProfile isteği gönderir.

Bu sayede ödeme başarılı olup erişim hakları güncellendiğinde, abonelik uygulamada neredeyse anında etkinleşir.

do {
    try await Adapty.openWebPaywall(for: product)
} catch {
    print("Failed to open web paywall: \(error)")
}

openWebPaywall metodunun iki versiyonu vardır:

  1. openWebPaywall(product): URL’leri paywalla göre oluşturur ve ürün verilerini de URL’lere ekler.
  2. openWebPaywall(paywall): URL’leri paywalla göre oluşturur ancak ürün verilerini eklemez. Adapty paywallındaki ürünler web paywallındakilerden farklı olduğunda bunu kullanın.

Hataları ele alma

HataAçıklamaÖnerilen işlem
AdaptyError.paywallWithoutPurchaseUrlPaywall için web satın alma URL’si yapılandırılmamışPaywallın Adapty Kontrol Paneli’nde doğru şekilde yapılandırılıp yapılandırılmadığını kontrol edin
AdaptyError.productWithoutPurchaseUrlÜrünün web satın alma URL’si yokAdapty Kontrol Paneli’nde ürün yapılandırmasını doğrulayın
AdaptyError.failedOpeningWebPaywallUrlURL tarayıcıda açılamadıCihaz ayarlarını kontrol edin veya alternatif bir satın alma yöntemi sunun
AdaptyError.failedDecodingWebPaywallUrlURL’deki parametreler düzgün şekilde kodlanamadıURL parametrelerinin geçerli ve doğru biçimde olduğunu doğrulayın

Uygulama örneği

class SubscriptionViewController: UIViewController {
    var paywall: AdaptyPaywall?
    
    @IBAction func purchaseButtonTapped(_ sender: UIButton) {
        guard let paywall = paywall, let product = paywall.products.first else { return }
         Task {
            await offerWebPurchase(for: product)
         }
    }
    
    func offerWebPurchase(for paywallProduct: AdaptyPaywallProduct) async {
        do {
            // Attempt to open web paywall
            try await Adapty.openWebPaywall(for: paywallProduct)
        } catch let error as AdaptyError {
            
            switch error {
            case .paywallWithoutPurchaseUrl, .productWithoutPurchaseUrl:
                showAlert(message: "Web purchase is not available for this product.")
            case .failedOpeningWebPaywallUrl:
                showAlert(message: "Could not open web browser. Please try again.")
            default:
                showAlert(message: "An error occurred: \(error.localizedDescription)")
            }
        } catch {
            showAlert(message: "An unexpected error occurred.")
        }
    }
    
    // Helper methods
    private func showAlert(message: String) { /* ... */ }
}

Kullanıcılar uygulamaya döndükten sonra, profil güncellemelerini yansıtmak için arayüzü yenileyin. AdaptyDelegate, profil güncelleme olaylarını alıp işleyecektir.

Web paywalllarını uygulama içi tarayıcıda açma

Web paywalllarını uygulama içi tarayıcıda açma özelliği Adapty SDK v. 3.15’ten itibaren desteklenmektedir.

Web paywalllar varsayılan olarak harici tarayıcıda açılır.

Kesintisiz bir kullanıcı deneyimi sunmak için web paywallları uygulama içi tarayıcıda açabilirsiniz. Bu, web satın alma sayfasını uygulamanızın içinde görüntüler ve kullanıcıların uygulama değiştirmeden işlemleri tamamlamasına olanak tanır.

Bunu etkinleştirmek için in parametresini .inAppBrowser olarak ayarlayın:

do {
    try await Adapty.openWebPaywall(for: product, in: .inAppBrowser) // default – .externalBrowser
} catch {
    print("Failed to open web paywall: \(error)")
}