在 Flutter SDK 中响应按钮操作
如果您使用 Adapty 付费墙编辑工具构建付费墙,正确设置按钮至关重要:
- 在付费墙编辑工具中添加按钮,并为其分配预设操作或创建自定义操作 ID。
- 在应用代码中编写处理每个已分配操作的逻辑。
本指南介绍如何在代码中处理自定义操作和预设操作。
只有购买和恢复操作会被自动处理。 其他所有按钮操作(例如关闭付费墙或打开链接)都需要在应用代码中实现相应的响应逻辑。
关闭付费墙
要添加一个可关闭付费墙的按钮:
- 在付费墙编辑工具中,添加一个按钮并为其分配 Close 操作。
- 在应用代码中,为
CloseAction和AndroidSystemBackAction操作实现处理逻辑。
在 Flutter SDK 中,CloseAction 和 AndroidSystemBackAction 操作默认会触发关闭付费墙。但如有需要,您可以在代码中覆盖此行为。例如,关闭一个付费墙可以触发打开另一个付费墙。
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case const CloseAction():
case const AndroidSystemBackAction():
view.dismiss();
break;
default:
break;
}
}
从付费墙打开 URL
如果您想添加一组链接(例如使用条款和购买恢复),可以在付费墙编辑工具中添加 Link 元素,并以与带有 Open URL 操作的按钮相同的方式进行处理。
要添加一个可从付费墙打开链接的按钮(例如使用条款或隐私政策):
- 在付费墙编辑工具中,添加一个按钮,为其分配 Open URL 操作,并输入您想要打开的 URL。
- 在应用代码中,为
openUrl操作实现处理逻辑,以便在浏览器中打开接收到的 URL。
// You have to install url_launcher plugin in order to handle urls:
// https://pub.dev/packages/url_launcher
import 'package:url_launcher/url_launcher_string.dart';
void paywallViewDidPerformAction(AdaptyUIView view, AdaptyUIAction action) {
switch (action) {
case OpenUrlAction(url: final url):
final Uri uri = Uri.parse(url);
launchUrl(uri, mode: LaunchMode.inAppBrowserView);
break;
default:
break;
}
}
登录应用
要添加一个可让用户登录应用的按钮:
- 在付费墙编辑工具中,添加一个按钮并为其分配 Login 操作。
- 在应用代码中,为
login操作实现处理逻辑,以识别您的用户。
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'login'):
// Handle login action
Navigator.of(context).push(MaterialPageRoute(builder: (context) => LoginScreen()));
break;
default:
break;
}
}
处理自定义操作
要添加一个处理其他任意操作的按钮:
- 在付费墙编辑工具中,添加一个按钮,为其分配 Custom 操作,并设置一个 ID。
- 在应用代码中,为您创建的操作 ID 实现处理逻辑。
例如,如果您有另一组订阅产品或一次性购买商品,可以添加一个按钮来显示另一个付费墙:
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'openNewPaywall'):
// Display another paywall
break;
default:
break;
}
}