当前位置:首页 > 移动端开发 > 正文内容

Flutter将视频或图文共享到抖音

邻居的猫1个月前 (12-09)移动端开发1238

如安在 Flutter 中共享视频到抖音

话不多说,先上作用:

原理

发布内容至抖音 H5 场景_移动/网站运用_抖音敞开渠道 (open-douyin.com)

  • 本教程没有接入抖音原生 SDK 以及任何第三方插件,运用抖音的 h5 共享接口合作 url_launcher 插件完成跳转至抖音共享页面
  • 需求共享的资源需求被布置在可被揭露拜访的服务器上,调用抖音的 h5 共享接口需供给被共享资源的 url
  • 需在自己的服务端进行签名核算,并将成果回来给前端,以供调用抖音的 api

过程

  1. 在 抖音敞开渠道注册 app,拿到 client_keyclient_secret
  2. 生成 client_token
  3. 获取 open_ticket
  4. 在服务端核算签名
  5. 将需求的参数回来给前端
  6. Flutter 拿到从服务端获取的参数 + 视频/图文链接 拉起抖音 App 共享

前端完成

服务端核算签名的部分就不多说了,我们依据官网的教程来就好,回来给前端的数据结构相似这样的:

{
// 服务端设置的 用于核算签名的 随机字符串
"nonceStr": "ae86",
// 签名
"signature": "665f1211738c4f348d093535e2ef93ac",
// 秒级时刻戳
"timestamp": "1717054967",
// 共享类型 默许 h5
"shareType": "h5",
"clientKey": "ztfqxgipi39ko49q"
}

前端生成 共享 schema,并调起共享代码:

  Future<void> douyinShare({
    // 图片列表
    List<String> images = const [],
    // 视频 url
    String? videoUrl = "",
    // 自定义标签
    List<String> tagList = const [],
    // 标题
    required String title,
  }) async {
    Response response = await dio.get('/<获取签名接口>');

    final Map<String, dynamic> param = {
      'title': title,
      'client_key': response.data['clientKey'],
      'nonce_str': response.data['nonceStr'],
      'signature': response.data['signature'],
      'timestamp': response.data['timestamp'],
      'share_type': response.data['h5'],
      // 1-直接跳转到发布页 0-跳转到修改页
      'share_to_publish': '1',
    };

    // 标签
    param['hashtag_list'] = json.encode(['自定义标签', '自定义标签2', ...tagList]);

    // 向 param 中增加图片或视频
    if (images.isNotEmpty) {
      if (images.length > 1) {
        param['image_list_path'] = json.encode(images);
      } else {
        param['image_path'] = images.first;
      }
    } else if (videoUrl != "") {
      param['video_path'] = videoUrl;
    } else {
      // error handle
    }

    // 固定写法
    final Uri url = Uri(
      scheme: 'snssdk1128',
      host: 'openplatform',
      path: 'share',
      queryParameters: param,
    );

    if (await canLaunchUrl(url)) {
      await launchUrl(url);
    }
  }

上述代码只展现了中心逻辑,至于详细的完成就请各位自行决断,例如 错误处理Util 东西类单例形式 等等...

IOS 需求增加运用白名单

抖音的 ApplicationQueriesScheme 为: snssdk1128

ios/info.plist 文件中参加

<key>LSApplicationQueriesSchemes</key>
<array>
	<string>snssdk1128</string> <!-- 抖音 -->
	...
</array>

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=493

标签: flutter抖音
分享给朋友:

“Flutter将视频或图文共享到抖音” 的相关文章

ios开发版,功能、升级与下载指南

iOS开发版主要是指苹果公司提供给开发者用于测试和开发应用程序的预发布版本。这些版本通常包含最新的功能和改进,但可能存在一些未解决的bug和稳定性问题。以下是关于iOS开发版的详细信息:1. 版本类型: 开发者预览版:通常是最先发布的版本,提供给注册了Apple Developer Progr...

鸿蒙 梯子,鸿蒙系统下的创新之作——多功能梯子

鸿蒙 梯子,鸿蒙系统下的创新之作——多功能梯子

在鸿蒙系统上安装和使用翻墙工具的方法有很多,以下是几种常见工具及其安装步骤:1. Clash: 安装步骤: 1. 确保你的鸿蒙系统版本是 HarmonyOS Next 之前,可以直接安装所需应用。 2. 如果是 HarmonyOS Next,需要使用 Auto Installe...

鸿蒙道祖,洪荒世界的至高存在

鸿蒙道祖,洪荒世界的至高存在

鸿蒙道祖,又称鸿钧老祖或鸿钧道人,是中国神话传说和小说《封神演义》中的重要人物。他的背景和影响力非常深远。1. 身份和地位: 鸿钧老祖是老子(太上老君)、元始天尊和通天教主三人的师父,被誉为“万仙之祖”。 在《封神演义》中,鸿钧老祖是最高级别的大神,他的地位高于其他仙人。2. 法宝和修行...

鸿蒙os

鸿蒙os

华为鸿蒙OS(HarmonyOS)是华为公司自主研发的一款面向全场n2. 设计目标:鸿蒙OS的目标是提供跨设备、跨平台的无缝协同体验,适用于包括智能手机、智能穿戴设备、智能家居产品、智慧屏、车机等多种形态的终端设备。 功能特点1. 分布式架构:鸿蒙OS采用了分布式架构,实现多设备之间的协同工作,可...

鸿蒙是什么系统,揭秘华为自主研发的操作系统

鸿蒙是什么系统,揭秘华为自主研发的操作系统

鸿蒙系统(HarmonyOS)是华为公司推出的一款自主研发的操作系统。它旨在为各种设备提供统一的操作系统,包括智能手机、平板电脑、笔记本电脑、智能手表、智能家居设备等。鸿蒙系统采用了微内核架构,具有更高的安全性和稳定性,同时也支持跨平台应用开发和运行。此外,鸿蒙系统还支持分布式技术,可以实现设备间的...

鸿蒙之至高无上

鸿蒙之至高无上

《鸿蒙之至高无上》是作者胡萝卜偷兔子1创作的一部小说,主要讲述了一个21世纪顶级宅男王凡意外穿越到鸿蒙世界的故事。在这个世界中,王凡机缘巧合下获得了一道本源法则,并凭借一颗神秘的九彩珠,开始了一段逍遥诸天万界、证至高无上之尊位的冒险旅程。小说情节紧凑,人物鲜明,深受读者喜爱鸿蒙之至高无上——一部穿越...