पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv1.1.1

video_shop_flutter

Tiktok और YouTube shorts की तरह शॉपिंग वीडियो विजेट बनाने के लिए एक Flutter प्लगइन।

AndroidiOSWebmacOS
30-दिन डाउनलोड
95
लाइक
27
Pub अंक
140

पैकेज इंस्टॉल करें

flutter pub add video_shop_flutter

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

video_shop_flutter एक Flutter प्लगइन है जिसका उद्देश्य TikTok और YouTube Shorts से प्रेरित खरीदारी वीडियो विजेट बनाना है। यह विकासकर्ताओं को एकीकृत, स्वाइप करने योग्य वीडियो फीड के साथ एम्बेडेड उत्पाद प्रदर्शन को सक्षम करता है, जिससे उपयोगकर्ता वीडियो में सीधे आइटम ब्राउज़ और खरीद सकते हैं। यह पैकेज Android, iOS, Web और macOS प्लेटफॉर्म पर बिना किसी अंतर के एकीकरण को समर्थन देता है, ई-कॉमर्स सामग्री के लिए नेटिव अनुभव प्रदान करता है। कस्टमाइज़ेबल UI घटकों और चिकने वीडियो प्लेबैक के साथ, यह आकर्षक सोशल कॉमर्स अनुभव बनाने के लिए आदर्श है।

उपयोग

  • टिकटॉक-शैली के शॉपिंग वीडियो बनाना
  • YouTube Shorts के आधार पर उत्पाद फीड बनाना
  • वीडियो में उत्पाद खरीदारी सक्षम करें
  • सोशल मीडिया ई-कॉमर्स ऐप्स विकसित करना
  • मौजूदा ऐप में शॉप्पेबल वीडियो कंटेंट को एकीकृत करना

मुख्य विशेषताएँ

  • स्वाइप करने योग्य वीडियो फीड
  • एम्बेडेड उत्पाद कार्ड
  • क्रॉस-प्लेटफॉर्म समर्थन (Android, iOS, Web, macOS)
  • इंटरैक्टिव शॉपिंग तत्व
  • चिकनी वीडियो प्लेबैक एंटीग्रेशन

इनके लिए उपयुक्त

  • ई-कॉमर्स ऐप डेवलपर्स
  • सोशल मीडिया प्लेटफॉर्म निर्माता
  • डिजिटल मार्केटर्स
  • मोबाइल ऐप टीमें
  • सामग्री-आधारित खुदरा एप्लिकेशन

विचार योग्य बातें

  • पीछे के उत्पाद डेटा के साथ एकीकरण की आवश्यकता है
  • ब्रांड के अनुरूप होने के लिए कस्टम स्टाइलिंग की आवश्यकता हो सकती है
  • बाहरी वीडियो होस्टिंग सेवाओं पर निर्भर करता है
  • वीडियो-आधारित शॉपिंग अनुभवों तक सीमित
  • उच्च वीडियो घनत्व के साथ संभावित प्रदर्शन प्रभाव

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Flutter Shopping Video: Create video player layout like tiktok.

Features

Video player layout:

Getting started

First, add video_shop_flutter as a dependency in your pubspec.yaml file.

Example

import 'package:example/service/service.dart';
import 'package:example/widgets/like_widget.dart';
import 'package:flutter/material.dart';
import 'package:video_shop_flutter/page/page.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      debugShowCheckedModeBanner: false,
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Map<String, dynamic>> data = [];
  ApiService service = ApiService();
  List<String> videoWatched = [];

  @override
  void initState() {
    super.initState();
  }

  @override
  void didChangeDependencies() async {
    List<Map<String, dynamic>> response = await service.mapData(1, 4);
    setState(() {
      data = response;
    });
    super.didChangeDependencies();
  }

  @override
  Widget build(BuildContext context) {
    debugPrint("\n data length: ${data.length} \n");

    return Scaffold(
      body: VideoShopFlutter(
        // Called every time video page is changed.
        updateLastSeenPage: (lastSeenPageIndex) {},
        // Video data.
        listData: data,
        // Watched videos, it's updated every time new video is watched.
        videoWatched: videoWatched,
        pageSize: 4,
        enableBackgroundContent: true,
        // Load more video data.
        loadMore: (page, pageSize) async {
          // Just for test.
          debugPrint("load more...");
          debugPrint("Video $videoWatched");
          List<Map<String, dynamic>> newData =
              await service.mapData((page + 2), 4);
          if (newData.isNotEmpty) {
            setState(() {
              data = [...data, ...newData];
            });
          }
          //.
        },
        // Your custom widget.
        likeWidget: (video, updateData) {
          return LikeWidget(
            likes: video?.likes ?? 0,
            liked: video?.liked ?? false,
            updateData: updateData,
            id: video?.id,
          );
        },
      ),
    );
  }
}

Note

  • listData in VideoShopFlutter(listData: playList,)

    The listData is a list of Map, each Map is a Video object and video object required some field of data like this:

     {
       'id': 123,
       'url': 'https://video.mp4'
       'thumbnail': 'https://thumbnail.jpg'
       'video_title': 'title',
       'description': 'description',
       'likes': 5 ,
       'liked': true,
       'product_name': 'productName',
       'product_permalink': 'productPermalink',
       'stock_status': 'stockStatus',
     }
    

    Please follow above format data.

    The pageSize is size of list data every time load more data, it affects when to load more data.

    The loadMore is a function to load more data, it is called every time current PageView is at position: listData.length - (pageSize/2)

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 2 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।