패키지, 저장소 및 앱 카테고리 검색

패키지 상세v2.0.2+12

local_assets_server

로컬 자산을 제공하는 HTTP 서버

AndroidiOSmacOSWindowsLinux
30일 다운로드
8
좋아요
36
Pub 점수
125

패키지 설치

flutter pub add local_assets_server

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Flutter 애플리케이션에서 로컬 자산을 제공하기 위한 가벼운 HTTP 서버입니다. 개발자가 장치의 로컬 스토리지에서 파일을 HTTP를 통해 제공할 수 있게 해주며, 테스트 또는 앱 내부에 HTML, CSS, JavaScript와 같은 정적 콘텐츠를 포함시키는 데 유용합니다. 외부 종속성 없이 로컬 웹 서버가 필요한 상황에 이상적입니다. 이 서버는 안드로이드, iOS, macOS, Windows 및 리눅스 등 다양한 플랫폼에서 실행됩니다.

사용 사례

  • 로컬 웹 콘텐츠 테스트
  • 앱에 정적 파일 내장하기
  • 오프라인 웹 기능 개발
  • 사용자 지정 HTML 페이지 제공
  • 자산 전달 디버깅

주요 기능

  • HTTP를 통해 로컬 파일 제공
  • 크로스 플랫폼 지원
  • 최소 구성으로 간단한 설정
  • 여러 운영 체제에서 실행 가능
  • 동적 파일 제공을 지원

적합한 대상

  • 로컬 HTTP 서비스가 필요한 플러터 개발자
  • 개발 중 웹 자산 테스트
  • 하이브리드 앱 컴포넌트 빌딩
  • 임베디드 웹 인터페이스 만들기
  • 오프라인 기능을 갖춘 앱 프로토타이핑

고려 사항

  • 생산 환경 사용을 위한 것이 아님
  • 수동 서버 관리가 필요합니다
  • 제한된 보안 기능
  • 성능은 장치 리소스에 따라 달라집니다
  • 파일 경로는 올바르게 지정되어야 합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

local_assets_server

lesnitsky.dev GitHub stars Twitter Follow

HTTP Server which serves local assets

Installation

pubspec.yaml:

dependencies:
  local_assets_server: ^2.0.2+10

Example

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:local_assets_server/local_assets_server.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Local Assets Server Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Local Assets Server Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  final String title;

  MyHomePage({Key? key, required this.title}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool isListening = false;
  String? address;
  int? port;
  WebViewController? controller;

  void _incrementCounter() {
    controller?.evaluateJavascript('window.increment()');
  }

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

  _initServer() async {
    final server = new LocalAssetsServer(
      address: InternetAddress.loopbackIPv4,
      assetsBasePath: 'web',
      logger: DebugLogger(),
    );

    final address = await server.serve();

    setState(() {
      this.address = address.address;
      port = server.boundPort!;
      isListening = true;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: isListening
          ? WebView(
              debuggingEnabled: true,
              initialUrl: 'http://$address:$port',
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (c) {
                controller = c;
              },
            )
          : Center(child: CircularProgressIndicator()),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

License

MIT

카테고리

의존성

의존성 목록 2 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.