annotate GeoQuiz/Logic/StoreKitRCClass.swift @ 12:ce7ea84f67f5

display product prices
author Dennis C. M. <dennis@denniscm.com>
date Sun, 09 Oct 2022 19:46:44 +0200
parents
children bdfff35dd43c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // StoreKitRCClass.swift
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 9/10/22.
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import Foundation
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9 import RevenueCat
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 class StoreKitRC: ObservableObject {
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 @Published var productPrice: String?
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 @Published var showingErrorAlert = false
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 @Published var errorMessage = ""
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 init() {
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 // Get product metadata
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 Purchases.shared.getOfferings { (offerings, error) in
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 if let package = offerings?.current?.lifetime?.storeProduct {
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 self.productPrice = package.localizedPriceString
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 } else {
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 self.errorMessage = "There was an error fetching the product. Please, contact the developer at dmartin@dennistech.io."
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 self.showingErrorAlert = true
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 }
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 if let error = error {
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 self.errorMessage = error.localizedDescription
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 self.showingErrorAlert = true
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 }
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 }
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 }
ce7ea84f67f5 display product prices
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 }