flutter_instagram_stories
一个用于显示类似 Whatsapp和Instagram的故事的Flutter插件。内置分组(同一图标下的多个故事)、缓存、视频、GIF。
该插件可用于任何应用程序,以显示新闻、教育内容等。在此处查看示例应用程序。
注意:此插件正在积极开发中,存在一些已知错误和许多待实现的功能。请在此处添加问题或功能请求:issue
该项目最初是从 https://github.com/blackmann/story_view 复制的——非常感谢这个不错的软件包。如果您需要更灵活的功能,可以查看原始项目。

重要说明
- 目前插件仅支持 Firebase。
- 这是第一个测试版,请在此处添加所有问题和功能请求:issue
功能
- 只需一行代码即可将此插件集成到应用程序中。
- 显示图片、GIF、视频。
- 图标上的可调整标题。
- 应用启动后的初步缓存。
- 多语言支持。
- 用户关闭故事时的回调 - 有助于在首次启动后实现订阅等。
安装
在此处查看如何安装 https://pub.dev/packages/flutter_instagram_stories#-installing-tab-
现在,在您的 Dart 代码中,您可以使用
import 'package:flutter_instagram_stories/flutter_instagram_stories.dart';
iOS
播放视频时,插件使用官方的 video_player https://pub.dev/packages/video_player
来自文档
-
警告:video_player 插件在 iOS 模拟器上无法正常工作。您必须在真实的 iOS 设备上测试视频。
-
对于 iOS,请在位于
<project root>/ios/Runner/Info.plist 的 Info.plist 文件中添加以下内容。
用法
您可以在此处找到完整的可运行示例 https://github.com/awaik/flutter_instagram_stories/tree/master/example
Dart 代码
连接到存储故事的集合
static String collectionDbName = 'instagram_stories_db';
CollectionReference dbInstance =
Firestore.instance.collection(collectionDbName);
并将完整的故事功能添加到您的应用程序中。
FlutterInstagramStories(
collectionDbName: collectionDbName,
showTitleOnIcon: true,
backFromStories: () {
_backFromStoriesAlert();
},
iconTextStyle: TextStyle(
fontSize: 14.0,
color: Colors.white,
),
iconImageBorderRadius: BorderRadius.circular(15.0),
iconBoxDecoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(15.0)),
color: Color(0xFFffffff),
boxShadow: [
BoxShadow(
color: Color(0xff333333),
blurRadius: 10.0,
offset: Offset(
0.0,
4.0,
),
),
],
),
iconWidth: 150.0,
iconHeight: 150.0,
textInIconPadding:
EdgeInsets.only(left: 8.0, right: 8.0, bottom: 12.0),
//how long story lasts in seconds
imageStoryDuration: 7,
progressPosition: ProgressPosition.top,
repeat: true,
inline: false,
languageCode: 'en',
closeButtonIcon: Icon(
Icons.close,
color: Colors.blueGrey,
size: 28.0,
),
closeButtonBackgroundColor: Color(0x00ffffff),
),
Firestore 数据库
插件与 Firestore 数据库和 package https://pub.dev/packages/cloud_firestore 一起工作,该包已包含在插件中。
您可以使用示例文件夹中的示例数据库 示例,或者创建自己的数据库。
创建步骤
- 将 Firebase 添加到您的应用程序
- Android https://firebase.google.com/docs/flutter/setup?platform=android
- iOS https://firebase.google.com/docs/flutter/setup?platform=ios
- 创建 Firestore 数据库
- 创建一个任意名称的集合。之后,您只需在 Dart 代码中使用此名称一次。
- 在集合中创建具有精确结构的文档,如下面的图片所示
DateTime date;
List file
// for example
// [{String filetype, String url}
// {String filetype, String url}
// ...]
String previewImage;
Map previewTitle
// for example
// {"en": someText, "anyLangCode": someText}

就是这样!现在您的应用程序拥有了具有缓存和其他强大功能的 Instagram 故事。
在真实应用程序中的用例
适用于 Android 和 iOS 的应用程序 - https://lifext.app/
