Flutter TikTok SDK集成插件tiktok_sdk_v2的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter TikTok SDK集成插件tiktok_sdk_v2的使用

tiktok_sdk_v2

Native SDK documentation 👉 https://developers.tiktok.com/doc/getting-started-create-an-app/

iOS Configuration

Step 1: Configure TikTok App Settings for iOS

前往 TikTok 开发者应用注册页面创建您的应用。审核通过后,您将获得 Client Key 和 Client Secret。

Step 2: Configure Xcode Project

配置 Info.plist 文件:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>tiktokopensdk</string>
    <string>tiktoksharesdk</string>
    <string>snssdk1180</string>
    <string>snssdk1233</string>
</array>
<key>TikTokClientKey</key>
<string>$TikTokClientKey</string>
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>$TikTokClientKey</string>
    </array>
  </dict>
</array>

Step 3: Edit AppDelegate.swift

AppDelegate.swift 文件中添加以下代码:

import UIKit
import Flutter

// Add this line
import TikTokOpenSDKCore

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }

  // Add this function
  override func application(
      _ app: UIApplication,
      open url: URL,
      options: [UIApplication.OpenURLOptionsKey: Any] = [:]
  ) -> Bool {
      if TikTokURLHandler.handleOpenURL(url) {
          return true
      }
      return false
  }
  
  // Add this function
  override func application(
      _ application: UIApplication,
      continue userActivity: NSUserActivity,
      restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
  ) -> Bool {
      if (TikTokURLHandler.handleOpenURL(userActivity.webpageURL)) {
          return true
      }
      return false
  }
}

Android Configuration

Step 1: Configure TikTok App Settings for Android

使用开发者门户申请 Android client_keyclient_secret 访问权限。申请审核通过后,开发者门户将提供这些密钥的访问权限。

Step 2: Edit Your Manifest

由于 Android 11 对包可见性的更改,当在目标为 Android 11 及更高版本的设备上实现 TikTok SDK 时,需要在 AndroidManifest.xml 文件中添加以下内容:

<queries>
    <package android:name="com.zhiliaoapp.musically" />
    <package android:name="com.ss.android.ugc.trill" />
</queries>

Flutter

Step 1: Setup config

await TikTokSDK.instance.setup(clientKey: DefaultConfig.user.tiktokClientKey);

Step 2: Call login

final result = await TikTokSDK.instance.login(permissions: {
  TikTokPermissionType.userInfoBasic,
  TikTokPermissionType.videoList
}, redirectUri: DefaultConfig.system.redirectUri);

Example Code

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:tiktok_sdk_v2/tiktok_sdk_v2.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  TikTokSDK.instance.setup(clientKey: 'TikTokAppID');
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String loginResult = '';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () async {
                  final result = await TikTokSDK.instance.login(permissions: {
                    TikTokPermissionType.userInfoBasic,
                    TikTokPermissionType.videoList
                  }, redirectUri: "...");
                  setState(() => loginResult = result.toString());
                },
                child: const Text('Tiktok sdk 2.0 Login'),
              ),
              const SizedBox(height: 16),
              Text('Login result: $loginResult'),
            ],
          ),
        ),
      ),
    );
  }
}

以上是一个完整的示例,展示了如何在 Flutter 应用中集成 tiktok_sdk_v2 插件并进行登录操作。希望对您有所帮助!


更多关于Flutter TikTok SDK集成插件tiktok_sdk_v2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter TikTok SDK集成插件tiktok_sdk_v2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用tiktok_sdk_v2插件的示例代码。请注意,由于我无法直接访问最新的SDK文档或源码,以下代码基于一般Flutter插件集成流程,并假设tiktok_sdk_v2插件提供了类似的API。如果tiktok_sdk_v2插件的API有所不同,请参考官方文档进行调整。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加tiktok_sdk_v2依赖:

dependencies:
  flutter:
    sdk: flutter
  tiktok_sdk_v2: ^latest_version  # 请替换为实际最新版本号

然后运行flutter pub get来安装依赖。

2. 导入插件

在你的Dart文件中导入tiktok_sdk_v2插件:

import 'package:tiktok_sdk_v2/tiktok_sdk_v2.dart';

3. 初始化SDK

通常在应用的入口文件(如main.dart)中初始化TikTok SDK。根据SDK的具体要求,可能需要进行一些配置,如设置API密钥等。以下是一个假设的初始化过程:

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 假设TikTok SDK有一个初始化方法
  TikTokSdk.initialize(apiKey: 'your_api_key_here');

  runApp(MyApp());
}

4. 使用SDK功能

以下是一个假设的使用TikTok SDK分享功能的示例。请根据实际提供的API进行调整:

import 'package:flutter/material.dart';
import 'package:tiktok_sdk_v2/tiktok_sdk_v2.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('TikTok SDK Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: _shareToTikTok,
            child: Text('Share to TikTok'),
          ),
        ),
      ),
    );
  }

  Future<void> _shareToTikTok() async {
    try {
      // 假设有一个分享方法
      TikTokShareResult result = await TikTokSdk.share(
        content: TikTokShareContent(
          title: 'Hello TikTok',
          description: 'This is a test share from Flutter app.',
          imageUrl: 'https://example.com/image.jpg', // 分享的图片URL
          // 其他可能的参数,如视频URL等,根据SDK文档添加
        ),
      );

      // 处理分享结果
      if (result.success) {
        print('Shared successfully!');
      } else {
        print('Failed to share: ${result.errorMessage}');
      }
    } catch (e) {
      print('Error sharing to TikTok: $e');
    }
  }
}

// 假设TikTokShareContent和TikTokShareResult的定义如下(实际应以SDK文档为准)
class TikTokShareContent {
  final String title;
  final String description;
  final String imageUrl;
  // 其他字段...

  TikTokShareContent({
    required this.title,
    required this.description,
    required this.imageUrl,
    // 其他参数...
  });
}

class TikTokShareResult {
  final bool success;
  final String? errorMessage;

  TikTokShareResult({required this.success, this.errorMessage});
}

注意事项

  1. API密钥:确保你有有效的TikTok开发者API密钥,并在初始化SDK时使用。
  2. 权限:在Android和iOS项目中添加必要的权限和网络配置,以便SDK能够正常工作。
  3. 错误处理:添加适当的错误处理逻辑,以处理SDK调用失败的情况。
  4. 文档:始终参考最新的tiktok_sdk_v2插件文档,因为API可能会随时间变化。

由于我无法访问实际的tiktok_sdk_v2插件文档和源码,以上代码仅为示例,具体实现细节可能需要根据实际插件的API进行调整。

回到顶部