Flutter集成Tiki平台功能插件tiki_sdk_flutter的使用
Flutter集成Tiki平台功能插件tiki_sdk_flutter的使用
TIKI SDK (Flutter) —数据授权
TIKI SDK for Flutter 使在您的应用程序中添加数据授权变得简单。这是用户将与之交互以接受(或拒绝)数据授权的客户端组件。TIKI 的 SDK 使用加密哈希创建不可变的数字签名许可记录,形成审计跟踪。使用开发人员友好的数据结构和 API 程序化地消费记录并强制执行条款。
此库包括可配置的预构建 UI 流程/元素和用于构建自定义体验的本地低级 API。
开始使用我们的 📚 SDK 文档,或直接跳转到 📘 API 参考。
安装
注意:开始之前,您需要一个发布 ID。创建一个发布 ID 是免费的;只需登录到我们的 🧑💻 开发者控制台 并创建一个新项目。
使用 Flutter 安装依赖:
flutter pub add tiki_sdk_flutter
这将在您的包的 pubspec.yaml
中添加一行(并运行隐式的 flutter pub get
):
dependencies:
tiki_sdk_flutter: ^2.1.6
确保您的项目的 Android minSdkVersion
至少设置为 19
在 [project]/android/app/build.gradle
中。
android {
...
defaultConfig {
...
minSdkVersion 19
...
}
}
就这样,真的就这么简单。
初始化
使用 TIKI 预构建的 UI 和自定义数据授权仅需 1 个构建器函数即可初始化 TIKI SDK。
await TikiSdk.config()
.theme
.primaryTextColor(Color(0xFF1C0000))
.primaryBackgroundColor(Color(0xFFFFFFFF))
.secondaryBackgroundColor(Color(0xFFF6F6F6))
.accentColor(Color(0xFF00B277))
.fontFamily("Space Grotesk")
.and()
.offer
.description("Trade your IDFA (kind of like a serial # for your phone) for a discount.")
.reward(Image.asset("<path>/reward.png"))
.bullet("Learn how our ads perform", true)
.bullet("Reach you on other platforms", false)
.bullet("Sold to other companies", false)
.terms("<path>/terms.md")
.ptr("db2fd320-aed0-498e-af19-0be1d9630c63")
.tag(TitleTag.deviceId())
.use([LicenseUsecase.attribution()])
.add()
.initialize("<your-publishing-id>", "<your-user-id>");
阅读有关样式设置、选择元数据和设计您的授权的信息请参阅我们的 📚 SDK 文档。
UI 流程
SDK 包括两个预构建的流程:present()
和 settings()
。使用 present()
向用户展示新的数据授权。
TikiSdk.present(context);
使用 settings()
渲染…设置屏幕,让用户可以改变主意并退出现有的授权协议。
TikiSdk.settings(context);
贡献
- 使用 GitHub Issues 报告任何您发现的错误或请求增强功能。
- 如果您想与我们的团队或其他活跃贡献者联系,请加入我们的 👾 Discord。
- 如果您打算向此项目添加代码,请使用 conventional commits。
项目结构
/lib
:库的主要实现源。/ui
:声明式 UI 流程和小部件。/assets
:捆绑的资源,如图形和字体。
/integration_tests
:需要设备或模拟器。/example_app
:简单的示例应用程序,演示如何配置和添加 SDK 到基本的 Flutter 应用程序。
贡献者 ✨
感谢这些杰出的人们:
贡献者 | 角色 |
---|---|
Ricardo Gonçalves | 代码、文档、示例、维护、测试 |
Mike Audi | 代码、审查拉取请求 |
Harshit | 代码、测试 |
Vigneshsanath | 设计 |
本项目遵循 all-contributors 规范。任何形式的贡献都欢迎!
示例代码
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:tiki_sdk_flutter/tiki_sdk.dart';
const String origin = "com.mytiki.tiki_sdk_example";
const String publishingId = "e12f5b7b-6b48-4503-8b39-28e4995b5f88";
void main() async {
await TikiSdk.config()
.theme
.fontFamily("SpaceGrotesk")
.and()
.offer
.reward(Image.asset("lib/ui/assets/images/offer_sample.png"))
.ptr("test_offer")
.bullet("Learn how our ads perform ", true)
.bullet("Reach you on other platforms", false)
.bullet("Sold to other companies", false)
.use([LicenseUsecase.support()])
.tag(TitleTag.advertisingData())
.description("Trade your IDFA (kind of like a serial # for your phone) for a discount.")
.terms("lib/ui/assets/terms.md")
.permission(Permission.camera)
.duration(const Duration(days: 365))
.add()
.initialize(publishingId, "test_user_123", onComplete: () => runApp(const MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return const MaterialApp(
title: 'TIKI SDK 示例应用',
home: Scaffold(body: Center(child: ExampleButtons())));
}
}
class ExampleButtons extends StatelessWidget {
const ExampleButtons({super.key});
[@override](/user/override)
Widget build(BuildContext context) => Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ElevatedButton(onPressed: () => TikiSdk.present(context), child: const Text("开始")),
ElevatedButton(onPressed: () => TikiSdk.settings(context), child: const Text("设置"))
],
);
}
更多关于Flutter集成Tiki平台功能插件tiki_sdk_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Tiki平台功能插件tiki_sdk_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
要在Flutter应用中集成Tiki平台的tiki_sdk_flutter
插件,你需要按照以下步骤进行。假设你已经有一个Flutter项目,并且对Flutter开发有一定的了解。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加tiki_sdk_flutter
插件的依赖。
dependencies:
flutter:
sdk: flutter
tiki_sdk_flutter: ^1.0.0 # 请检查最新版本
然后运行flutter pub get
来获取依赖。
2. 配置平台
Android
在android/app/build.gradle
文件中,确保你启用了androidx
并设置了最低SDK版本。
android {
...
defaultConfig {
...
minSdkVersion 21 // 确保最低SDK版本为21或更高
...
}
...
}
iOS
在ios/Podfile
中,确保你设置了iOS的最低部署目标。
platform :ios, '11.0' // 确保最低部署目标为11.0或更高
然后运行pod install
来更新iOS的依赖。
3. 初始化Tiki SDK
在你的Flutter应用中初始化Tiki SDK。通常,你可以在main.dart
中完成这个操作。
import 'package:flutter/material.dart';
import 'package:tiki_sdk_flutter/tiki_sdk_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Tiki SDK
await TikiSdkFlutter.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的Tiki API Key
baseUrl: 'https://your-tiki-api-endpoint.com', // 替换为你的Tiki API基础URL
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Tiki SDK Example',
home: Scaffold(
appBar: AppBar(
title: Text('Tiki SDK Example'),
),
body: Center(
child: Text('Tiki SDK is initialized!'),
),
),
);
}
}
4. 使用Tiki SDK功能
根据tiki_sdk_flutter
插件的文档,你可以调用各种功能。例如,获取用户信息、授权、或进行其他操作。
void fetchUserInfo() async {
try {
var userInfo = await TikiSdkFlutter.getUserInfo();
print('User Info: $userInfo');
} catch (e) {
print('Error fetching user info: $e');
}
}
5. 处理权限和隐私
确保你的应用遵循Tiki平台的隐私政策和权限要求。你可能需要在AndroidManifest.xml
和Info.plist
中添加必要的权限声明。
6. 测试和发布
在集成完成后,确保在模拟器和真实设备上测试应用。确保所有功能正常工作后,你可以将应用发布到应用商店。
7. 查看官方文档
由于tiki_sdk_flutter
插件的具体功能和使用方法可能会有所不同,建议查看官方文档以获取最新的使用指南和API参考。
示例代码
以下是一个简单的示例,展示了如何初始化和使用tiki_sdk_flutter
插件:
import 'package:flutter/material.dart';
import 'package:tiki_sdk_flutter/tiki_sdk_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Tiki SDK
await TikiSdkFlutter.initialize(
apiKey: 'YOUR_API_KEY',
baseUrl: 'https://your-tiki-api-endpoint.com',
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Tiki SDK Example',
home: TikiExamplePage(),
);
}
}
class TikiExamplePage extends StatefulWidget {
[@override](/user/override)
_TikiExamplePageState createState() => _TikiExamplePageState();
}
class _TikiExamplePageState extends State<TikiExamplePage> {
String _userInfo = '';
void _fetchUserInfo() async {
try {
var userInfo = await TikiSdkFlutter.getUserInfo();
setState(() {
_userInfo = userInfo.toString();
});
} catch (e) {
setState(() {
_userInfo = 'Error: $e';
});
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Tiki SDK Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(_userInfo),
SizedBox(height: 20),
ElevatedButton(
onPressed: _fetchUserInfo,
child: Text('Fetch User Info'),
),
],
),
),
);
}
}