StoreKit|为 App 功能添加会员限制
条件渲染
通过用户当前权限,条件渲染不同的 View 视图:

但这种方式的缺陷在于,对于不同的功能,需要自定义实现不同的“PremiumFeatureRow”组件。
并且,在 PremiumFeatureRow 组件中,需要实现点击打开订阅页面的逻辑。
通用修饰器
创建一个通用的 PremiumFeatureModifier 修饰器,
- 对于非会员用户,设置
.disabled(true)
,并显示会员徽章。 - 封装导航到订阅页面的逻辑。

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

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