StoreKit|为 App 功能添加会员限制

条件渲染

通过用户当前权限,条件渲染不同的 View 视图:

但这种方式的缺陷在于,对于不同的功能,需要自定义实现不同的“PremiumFeatureRow”组件。

并且,在 PremiumFeatureRow 组件中,需要实现点击打开订阅页面的逻辑。

通用修饰器

创建一个通用的 PremiumFeatureModifier 修饰器,

  • 对于非会员用户,设置 .disabled(true),并显示会员徽章。
  • 封装导航到订阅页面的逻辑。
注意:使用 if 条件渲染,仅在非会员状态下添加 onTapGesture 修饰器,否则会造成手势冲突。

在需要的地方,直接使用 .premiumFeature() 修饰器,无需格外的代码:

这种方式的缺陷是:

  • 仅对支持.disabled(true)的组件有用,例如 Button。
  • 对于 Picker 组件,理想情况下,对于非会员用户,我们仍然希望展示可选项,但不可点击。但这种方式会导致 Picker 整个不可点击。