首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RevenueCat SwiftUI中的多个订阅按钮

RevenueCat SwiftUI中的多个订阅按钮
EN

Stack Overflow用户
提问于 2022-02-24 14:37:54
回答 1查看 184关注 0票数 0

我跟踪了这个视频:https://www.youtube.com/watch?v=0H2SdKf4ot0,它帮助我在我的SwiftUI应用程序中安装了RC。我可以通过一个按钮来购买一次订阅:

代码语言:javascript
复制
VStack {
                    Button(action: {
                        Purchases.shared.offerings { offerings, error in
                            if let packages = offerings?.current?.availablePackages {
                                Purchases.shared.purchasePackage(packages.first!, { transaction, purchaserInfo, error, userCancelled in
                                    print("TRANSACTION: \(transaction)")
                                    print("PURCHASER INFO: \(purchaserInfo)")
                                    print("USER CANCELED: \(userCancelled)")

                                    if purchaserInfo?.entitlements["Pro"]?.isActive == true {
                                    }
                                })
                            }
                        }

                    }, label: {
                        Text("1 month")
                            .foregroundColor(.white)
                            .frame(maxWidth: 280)
                    })

                }

我现在面临的挑战是,我有三个购买选择,为我的一个权利:每月分,年度分,和终身。所有这些都可以在和RC上配置。

由于本例使用了packages.first (并正确地抓取了月度子),我如何配置我的年度按钮和生存期按钮?没有packages.secondpackages.third

感谢你的洞察力。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-02-24 16:59:29

对此,广泛使用的答案似乎是只使用ForEach循环。感谢乔希在RC论坛上!https://community.revenuecat.com/general-questions-7/multiple-subscription-buttons-swiftui-1290?postid=3962#post3962

代码语言:javascript
复制
struct MyView: View {

  @State private var packages = [Purchases.Package]()

  var body: some View {
    VStack {
      ForEach(packages, id: \.self) { package in
        Button {
          // Purchase package
        } label: {
          Text(package.localizedPriceString)
        }
      }
    }.onAppear {
      Purchases.shared.offerings { (offerings, error) in
        if let offering = offerings?.current {
          packages = offering.availablePackages
        }
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71253638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档