Adapty FlutterFlow 插件操作与数据类型
自定义操作
以下是通过 Adapty 插件传递给 FlutterFlow 的 Adapty 方法。它们可以在 FlutterFlow 中用作自定义操作。
| 自定义操作 | 描述 | 操作参数 | Adapty 数据类型 - 操作输出变量 |
|---|---|---|---|
| activate | 初始化 Adapty SDK | 无 | |
getPaywall | 获取付费墙。该操作不返回付费墙产品,请使用 getPaywallProducts 操作获取实际产品 | AdaptyGetPaywallResult | |
getPaywallProducts | 返回实际付费墙产品列表 | AdaptyPaywall | AdaptyGetProductsResult |
getProductsIntroductoryOfferEligibility | 检查用户是否符合 iOS 订阅新用户优惠的资格 | AdaptyPaywallProduct | AdaptyGetIntroEligibilitiesResult |
makePurchase | 完成购买并解锁内容。如果付费墙有促销活动,Adapty 会在结账时自动应用 |
| AdaptyMakePurchaseResult |
getProfile | 获取当前应用用户的用户画像,以便设置访问等级及其他参数。 如果获取失败(例如因为没有网络),将返回缓存数据。Adapty 会定期更新用户画像缓存,以确保信息尽可能保持最新。 | 无 | AdaptyGetProfileResult |
| updateProfile | 修改当前用户画像的可选属性,如电子邮件、电话号码等。您可以使用这些属性创建用户市场细分,或直接在 CRM 中查看 | AdaptyProfile 的 ID 及需要更新的任意参数 | AdaptyError(可选) |
| restorePurchases | 恢复用户已完成的购买 | 无 | AdaptyGetProfileResult |
| logShowPaywall | 记录特定付费墙向用户展示的事件 | AdaptyPaywall | AdaptyError(可选) |
| identify | 使用您系统的 customerUserId 识别用户 | customerUserId | AdaptyError(可选) |
| logout | 将当前用户退出登录 | 无 | AdaptyError(可选) |
| presentCodeRedemptionSheet | 显示允许用户兑换码的界面(仅限 iOS) | 无 | 无 |
数据类型
Adapty 数据类型(数据值的集合)通过 Adapty 插件传递至 FlutterFlow。
AdaptyAccessLevel
关于用户访问等级的信息。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| activatedAt | DateTime | 此访问等级的激活时间 |
| activeIntroductoryOfferType | String | 当前生效的新用户优惠类型。若已设置,表示在此订阅周期内应用了优惠 |
| activePromotionalOfferId | String | 当前生效的促销活动 ID(从 iOS 购买) |
| activePromotionalOfferType | String | 当前生效的促销活动类型(从 iOS 购买)。若已设置,表示在此订阅周期内应用了优惠 |
| billingIssueDetectedAt | DateTime | 检测到账单问题的时间。订阅可能仍处于有效状态。若付款处理成功,则设为 null |
| cancellationReason | String | 订阅被取消的原因 |
| expiresAt | DateTime | 访问等级的到期时间(可能已过期,或对于永久授权未设置此字段) |
| id | String | 访问等级的标识符 |
| isActive | Boolean | 若此访问等级处于激活状态则为 true。通常可通过此属性判断用户是否有权访问高级功能 |
| isInGracePeriod | Boolean | 若此自动续期订阅处于宽限期则为 true |
| isLifetime | Boolean | 若此访问等级为永久授权(无到期日期)则为 true |
| isRefund | Boolean | 若此购买已退款则为 true |
| offerId | String | 当前生效的促销活动 ID(从 Android 购买) |
| renewedAt | DateTime | 访问等级上次续期的时间 |
| startsAt | DateTime | 此访问等级的开始时间(可能为将来的时间) |
| store | String | 购买发生的商店 |
| unsubscribedAt | DateTime | 订阅关闭自动续期的时间。订阅可能仍处于有效状态。若未设置,表示用户已重新激活订阅 |
| vendorProductId | String | 解锁此访问等级的商店产品 ID |
| willRenew | Boolean | 若此自动续期订阅已设置为续期则为 true |
AdaptyAccessLevelIdentifiers
此结构体用于替换 Map<String, AdaptyAccessLevel AdaptyAccessLevel 的键值对。
| 字段名 | 类型 | 描述 |
|---|---|---|
| accessLevelIdentifier | String | 访问等级的 ID |
| accessLevel | Data (AdaptyAccessLevel) | 关联的 AdaptyAccessLevel |
AdaptyCustomDoubleAttribute
关于为用户定义的自定义 double 属性的信息。
| 字段名 | 类型 | 描述 |
|---|---|---|
| key | String | 自定义 double 属性的 ID |
| value | Double | 自定义 double 属性的值 |
AdaptyCustomStringAttribute
为用户定义的自定义字符串属性信息。
| 字段名 | 类型 | 描述 |
|---|---|---|
| key | String | 自定义字符串属性的 ID |
| value | String | 自定义字符串属性的值 |
AdaptyError
包含错误的详细信息。有关错误代码的完整列表,请参阅 React Native、Flutter、Unity - 错误处理。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| errorMessage | String | 人类可读的错误描述 |
| errorCode | Integer | 标识错误的数字代码 |
AdaptyGetIntroEligibilitiesResult
包含 getProductsIntroductoryOfferEligibility 自定义操作的结果。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| value | List < Data (AdaptyProductIntroEligibility) > | 用户对促销活动的资格列表 |
| error | Data (AdaptyError) | 通过 AdaptyError 包含错误的详细信息 |
AdaptyGetPaywallResult
包含 getPaywall 自定义操作的结果。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| value | Data (AdaptyPaywall) | 包含 AdaptyPaywall 对象列表 |
| error | Data (AdaptyError) | 通过 AdaptyError 包含错误信息 |
AdaptyGetProductsResult
包含 getPaywallProducts 自定义操作的结果。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| value | List < Data (AdaptyPaywallProduct) > | 包含 AdaptyPaywallProduct 列表 |
| error | Data (AdaptyError) | 通过 AdaptyError 包含错误信息 |
AdaptyGetProfileResult
包含 getProfile 自定义操作的结果。
| 字段名 | 类型 | 描述 |
|---|---|---|
| value | Data (AdaptyProfile) | 以 AdaptyProfile 形式包含用户画像 |
| error | Data (AdaptyError) | 通过 AdaptyError 包含错误信息 |
AdaptyMakePurchaseResult
包含 makePurchase 自定义操作的结果。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| value | Data (AdaptyProfile) | 以 AdaptyProfile 的形式包含用户画像 |
| error | Data (AdaptyError) | 通过 AdaptyError 包含错误信息 |
AdaptyNonSubscription
关于非订阅购买的信息。这些可以是一次性(消耗型商品)产品、解锁项目(例如游戏中的新地图解锁)等。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| isConsumable | Boolean | 表示该产品是否为消耗型商品 |
| isOneTime | Boolean | 表示该产品是否为一次性购买(例如,若为 true,则该购买仅处理一次) |
| isRefund | Boolean | 表示该产品是否已退款 |
| isSandbox | Boolean | 表示该产品是否在沙盒环境中购买 |
| purchasedAt | DateTime | 产品的购买时间 |
| purchaseId | String | 该购买在 Adapty 中的 ID,可用于追踪一次性购买产品 |
| store | String | 购买该产品的商店(例如 App Store、Google Play) |
| vendorProductId | String | 该产品在供应商系统中的 ID |
| vendorTransactionId | String | 该产品在供应商系统中的交易 ID |
AdaptyPaywall
关于付费墙的信息。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| abTestName | String | 父级 A/B 测试的名称 |
| hasViewConfiguration | Boolean | 指示付费墙是否存在视图配置 |
| locale | String | 付费墙的区域设置 ID |
| name | String | 付费墙名称 |
| placement.id | String | 父级版位的 ID |
| remoteConfigString | String | 来自 Adapty 看板中与此付费墙关联的自定义字典 |
| placement.revision | Integer | 付费墙的当前修订版本/版本号。每次更改都会生成新的修订版本 |
| variationId | String | 用于将购买归因到此付费墙的实验变体 ID |
| vendorProductIds | String | 与付费墙相关的产品 ID 数组 |
AdaptyPaywallProduct
关于产品的信息。
| 字段名 | 类型 | 描述 |
|---|---|---|
| vendorProductId | String | 应用商店中产品的 ID |
| localizedDescription | String | 产品在用户语言中的描述 |
| localizedTitle | String | 产品在用户语言中的名称 |
| regionCode | String | 用于格式化产品价格的地区代码(适用于 iOS) |
| isFamilyShareable | Boolean | 表示产品是否在 App Store Connect 中可供家庭共享的布尔值。对于 iOS 14.0 以下版本及 macOS 11.0 以下版本,始终为 FALSE(适用于 iOS) |
| paywallVariationId | String | 实验变体的 ID,用于将购买归因到此付费墙 |
| paywallABTestName | String | 父级 A/B 测试名称 |
| paywallName | String | 父级付费墙名称 |
| price | Data (AdaptyPriceData) | 产品价格 |
| subscriptionDetails | Data (AdaptySubscriptionDetails) | 订阅相关信息 |
AdaptyPrice
关于产品价格的信息。
| 字段名 | 类型 | 描述 |
|---|---|---|
| amount | Double | 价格的数值 |
| currencyCode | String | 价格货币的代码 |
| currencySymbol | String | 货币使用的符号 |
| localizedString | String | 以用户语言显示的价格 |
AdaptyProductIntroEligibility
定义用户是否符合 iOS 订阅新用户优惠的资格。
| 字段名 | 类型 | 描述 |
|---|---|---|
| vendorProductId | String | 应用商店中产品的 ID |
| eligibility | AdaptyEligibilityEnum | 定义用户是否符合 iOS 订阅新用户优惠的资格 |
AdaptyProductNonsubscriptions
与此产品关联的活跃非订阅详情。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| productId | String | 应用商店中该产品的 ID |
| nonsubscriptions | AdaptyNonSubscription | 非订阅购买的相关信息。可以是一次性(消耗型商品)产品、解锁内容(例如游戏中的新地图解锁)等。 |
AdaptyProductSubscriptions
与该产品关联的活跃订阅的详细信息。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| productId | String | 应用商店中产品的 ID |
| subscription | AdaptySubscription | 关于订阅购买的信息 |
AdaptyProfile
用户画像的相关信息
| 字段名称 | 类型 | 描述 |
|---|---|---|
| accessLevels | List < Data (AdaptyAccessLevelIdentifiers) > | 属于该用户的所有访问等级列表 |
| profileId | String | 用户画像的 ID |
| customerUserId | String | 用户在供应商系统中的 ID |
| subscriptions | List < Data (MapKeySubscriptions) > | 用户购买的所有订阅列表 |
| nonSubscriptions | List < Data (MapKeyNonSubscriptions) > | 用户购买的所有非订阅产品列表 |
AdaptyProfileParameters
用户信息。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| firstName | String | 用户的名字 |
| lastName | String | 用户的姓氏 |
| gender | AdaptyGenderEnum | 用户的性别 |
| birthday | String | 用户的生日 |
| String | 用户的电子邮箱 | |
| phoneNumber | String | 用户的电话号码 |
| facebookAnonymousId | String | 用户在 Facebook Ads 集成 中的 ID |
| amplitudeUserId | String | 用户在 Amplitude 集成 中的 ID |
| amplitudeDeviceId | String | 用户设备在 Amplitude 集成 中的 ID |
| mixpanelUserId | String | 用户在 Mixpanel 集成 中的 ID |
| appmetricaProfileId | String | 用户在 AppMetrica 集成 中的 ID |
| appmetricaDeviceId | String | 用户设备在 AppMetrica 集成 中的 ID |
| oneSignalPlayerId | String | 用户在 OneSignal 集成 中的 ID |
| pushwooshHWID | String | 用户设备在 Pushwoosh 集成 中的 ID |
| firebaseAppInstanceId | String | 用户在 Firebase 集成 中的 ID |
| airbridgeDeviceId | String | 用户设备在 Airbridge 集成 中的 ID |
| appTrackingTransparencyStatus | AdaptyATTStatus | 访问 IDFA 的状态(适用于 iOS) |
| analyticsDisabled | Boolean | 定义是否已为该用户选择退出外部分析 |
| customStringAttributes | List < Data (AdaptyCustomStringAttribute) > | 用户的自定义字符串属性列表 |
| customDoubleAttributes | List < Data (AdaptyCustomDoubleAttribute) > | 用户的自定义双精度属性列表 |
AdaptySubscription
关于现有用户订阅的信息。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| activatedAt | DateTime | 此订阅激活的时间 |
| activeIntroductoryOfferType | String | 当前有效的新用户优惠类型。若已设置,表示在此订阅周期内应用了某项优惠 |
| activePromotionalOfferId | String | 当前有效的促销活动 ID(用于 iOS) |
| activePromotionalOfferType | String | 当前有效的促销活动类型(用于 iOS)。若已设置,表示在此订阅周期内应用了某项促销活动 |
| cancellationReason | String | 订阅被取消的原因 |
| expiresAt | DateTime | 订阅到期时间 |
| renewedAt | DateTime | 订阅上次续订的时间 |
| unsubscribedAt | DateTime | 订阅关闭自动续订的时间。订阅仍可处于有效状态。若未设置,表示用户已重新激活订阅 |
| billingIssueDetectedAt | DateTime | 检测到账单问题的时间。订阅仍可处于有效状态。若付款成功处理,则设为 null |
| isActive | Boolean | 若此订阅处于有效状态则为 True。通常可通过此属性判断用户是否可访问高级功能 |
| isInGracePeriod | Boolean | 若此自动续订订阅处于宽限期则为 True |
| isLifetime | Boolean | 若此订阅为永久授权(无到期日期)则为 True |
| isRefund | Boolean | 若此购买已退款则为 True |
| isSandbox | Boolean | 表示产品是否在沙盒环境中购买 |
| offerId | String | 当前有效的促销活动 ID(用于 Android) |
| startsAt | DateTime | 此访问等级的开始时间(可能是未来时间) |
| store | String | 购买产品的商店(例如 App Store、Google Play) |
| vendorOriginalTransactionId | String | 供应商系统中初始订阅的 ID |
| vendorProductId | String | 供应商系统中产品的 ID |
| vendorTransactionId | String | 供应商系统中的交易 ID |
| willRenew | Boolean | 若此自动续订订阅已设置为续订则为 True |
AdaptySubscriptionDetails
AdaptyPaywallProduct 的订阅对象结构。
| 字段名 | 类型 | 描述 |
|---|---|---|
| androidBasePlanId | String | Google Play 商店中的基础方案 ID 或 Stripe 中的价格 ID。 |
| androidIntroductoryOfferEligibility | AdaptyEligibilityEnum | 用户是否符合 iOS 订阅新用户优惠的资格判定 |
| androidOfferId | String | 有效促销活动的 ID(用于 Android) |
| androidOfferTags | List < String > | 为基础方案和订阅优惠指定的自定义标签列表。 |
| introductoryOffer | List < Data (AdaptySubscriptionPhase) > | 新用户优惠的 ID(用于 iOS) |
| localizedSubscriptionPeriod | String | 以用户语言显示的订阅周期 |
| promotionalOffer | Data (AdaptySubscriptionPhase) | 促销活动详情(用于 iOS) |
| promotionalOfferEligibility | Boolean | 用户是否符合 iOS 订阅促销活动资格的判定 |
| promotionalOfferId | String | 促销活动的 ID(用于 iOS) |
| renewalType | AdaptyRenewalTypeEnum | 通过 AdaptyRenewalTypeEnum 定义订阅是否为自动续订 |
| subscriptionGroupIdentifier | String | 产品所属产品组的 ID(用于 iOS) |
| subscriptionPeriod | Data (AdaptySubscriptionPeriod) | 订阅的时长 |
AdaptySubscriptionPeriod
订阅的时长。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| numberOfUnits | Integer | 订阅持续的天数/周数/月数/年数。 |
| unit | AdaptyPeriodUnitEnum | 周期的计量单位:天、周、月、年。 |
AdaptySubscriptionPhase
表示订阅阶段,例如免费试用期或新用户优惠期。
| 字段名 | 类型 | 描述 |
|---|---|---|
| identifier | String | 阶段的 ID |
| localizedNumberOfPeriods | String | 阶段的时长。例如,6 个月的优惠活动将以用户的语言显示为 6 months。 |
| localizedSubscriptionPeriod | String | 以用户语言表示的订阅时长,例如 3 months。 |
| numberOfPeriods | Integer | 此阶段包含的订阅周期数。例如,6 个月的优惠活动将包含两个 3 个月的周期。 |
| paymentMode | AdaptyPaymentModeEnum | 此阶段使用的付款模式。 |
| price | Data (AdaptyPrice) | 此阶段的价格。 |
| subscriptionPeriod | Data (AdaptySubscriptionPeriod) | 此阶段所基于的订阅周期。 |
AdaptySubscriptionUpdateParameters
(仅限 Android) 用于将一个订阅替换为另一个订阅的参数。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| oldSubVendorProductId | String | 您想要替换的 Play Store 中当前订阅的 ID。 |
| replacementMode | AdaptySubscriptionUpdateReplacementMode | 对应 BillingFlowParams.ProrationMode 值的枚举。 |
MapKeyNonSubscriptions
AdaptyNonSubscription 字典的替代项。
| 字段名 | 类型 |
|---|---|
| key | String |
| value | List < Data (AdaptyNonSubscription) > |
MapKeySubscriptions
AdaptySubscription 字典的替代类型。
| 字段名 | 类型 |
|---|---|
| key | String |
| value | List < Data (AdaptySubscription) > |
枚举
通过 Adapty 插件传递给 FlutterFlow 的 Adapty 枚举(即预定义常量集合的变量)。
AdaptyEligibilityEnum
定义用户是否符合 iOS 订阅新用户优惠的资格。
| 字段名称 | 描述 |
|---|---|
| eligible | 用户符合新用户优惠资格,可以在您的 UI 中展示此信息 |
| ineligible | 用户不符合任何优惠资格,不应在您的 UI 中展示 |
| notApplicable | 该产品未配置任何优惠 |
AdaptyGenderEnum
定义用户性别。
| 字段名称 | 描述 |
|---|---|
| none | 性别未设置 |
| female | 用户性别为女性 |
| male | 用户性别为男性 |
| Other | 用户将其性别定义为”其他” |
AdaptyPaymentModeEnum
定义支付模式。
| 字段名称 | 描述 |
|---|---|
| payAsYouGo | 一种按需计费的定价模式,客户根据其对产品/服务的实际使用量或消耗量付费,而非预先支付固定费用 |
| payUpFront | 一种预付款定价模式,客户在收到产品/服务之前即完成付款。 |
| freeTrial | 用户正处于免费试用期 |
| unknown | 定价模式未定义 |
AdaptyPeriodUnitEnum
定义周期计量的单位。
| 字段名 | 描述 |
|---|---|
| day | 以天为单位 |
| week | 以周为单位 |
| month | 以月为单位 |
| year | 以年为单位 |
| unknown | 未定义 |
AdaptyRenewalTypeEnum
定义订阅是否自动续期。
| 字段名称 | 描述 |
|---|---|
| prepaid | 订阅为预付费模式,不自动续期。 |
| autorenewable | 订阅为自动续期模式。 |
AdaptySubscriptionUpdateReplacementMode
定义 Android 的订阅更新模式。
| 字段名称 | 描述 |
|---|---|
| withTimeProration | (默认)新方案立即生效,剩余时间将按比例折算并计入用户账户。 |
| chargeProratedPrice | 新方案立即生效,计费周期保持不变。剩余期间的费用将被收取。此选项仅适用于订阅升级。 |
| withoutProration | 新方案立即生效,新价格将在下一个续费时间收取。计费周期保持不变。 |
| deferred | 新购买立即生效,新方案将在旧项目到期后生效。 |
| chargeFullPrice | 新方案立即生效,计费周期保持不变。剩余期间的费用将被收取。此选项仅适用于订阅升级。 |
应用状态
应用状态变量是保存应用程序当前状态的特定变量。它们可以在整个应用程序的所有页面和组件中被访问和修改。这类变量适用于存储需要在应用不同部分之间共享的数据,例如用户偏好设置和身份验证令牌。
| 字段名称 | 数据类型 | 持久化 | 描述 |
|---|---|---|---|
| currentProfile | Data (AdaptyProfile) | False | 包含当前用户画像信息的变量。请保持其最新状态。 |