搜尋套件、儲存庫與 APP 分類

套件詳情v0.5.1

launch_at_startup

此外掛程式允許 Flutter 桌面應用程式在啟動/登入時自動執行。

macOSWindowsLinux
近 30 天下載
4.7萬
喜歡數
151
Pub 分數
125

安裝套件

flutter pub add launch_at_startup

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

launch_at_startup 套件讓 Flutter 桌面應用程式能在 macOS、Windows 或 Linux 上使用者登入時自動啟動。它提供一個簡單的 API,可在跨平台環境中檢查、啟用或停用自動啟動行為。這對於需要在背景持續運行的應用程式(如系統監控工具、通知工具或生產力工具)特別有用。該外掛與 Flutter 的桌面支援無縫整合,不需要變更原生程式碼。它利用平台特定機制可靠地管理啟動項目。

適用情境

  • 後台監控應用
  • 系統實用工具
  • 通知服務
  • 自動啟動生產力應用
  • 持久化桌面應用程式

主要特色

  • 跨平台啟動控制
  • 簡單啟用/停用 API
  • 平台特定實作
  • 無需原生程式碼
  • 支援 macOS、Windows 與 Linux

適合對象

  • 需要自動啟動的桌面應用程式
  • 系統級工具
  • 需要持續存在的應用
  • 面向多個桌面操作系統的開發者
  • 無需人工干預即可運行的工具

使用建議

  • 某些系統需要使用者權限
  • 可能與其他自動啟動應用程式衝突
  • 行為因作業系統而略有差異
  • 不適合用於行動應用程式
  • 使用者可能需要在系統設定中手動啟用

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

🚀 Ship Your App Faster: Try Fastforge - The simplest way to build, package and distribute your Flutter apps.

launch_at_startup

pub version

This plugin allows Flutter desktop apps to Auto launch on startup / login.


English | 简体中文


Platform Support

Linux macOS* Windows
✔️ ✔️ ✔️

*Required macOS support installation instructions below

Quick Start

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  launch_at_startup: ^0.5.1

Or

dependencies:
  launch_at_startup:
    git:
      url: https://github.com/leanflutter/launch_at_startup.git
      ref: main
Usage
import 'dart:io';

import 'package:launch_at_startup/launch_at_startup.dart';
import 'package:package_info_plus/package_info_plus.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  PackageInfo packageInfo = await PackageInfo.fromPlatform();

  launchAtStartup.setup(
    appName: packageInfo.appName,
    appPath: Platform.resolvedExecutable,
    // Set packageName parameter to support MSIX.
    packageName: 'dev.leanflutter.examples.launchatstartupexample',
  );

  await launchAtStartup.enable();
  await launchAtStartup.disable();
  bool isEnabled = await launchAtStartup.isEnabled();

  runApp(const MyApp());
}

// ...

Please see the example app of this plugin for a full example.

macOS Support

Setup

Add platform channel code to your macos/Runner/MainFlutterWindow.swift file.

import Cocoa
import FlutterMacOS
// Add the LaunchAtLogin module
import LaunchAtLogin
//

class MainFlutterWindow: NSWindow {
  override func awakeFromNib() {
    let flutterViewController = FlutterViewController.init()
    let windowFrame = self.frame
    self.contentViewController = flutterViewController
    self.setFrame(windowFrame, display: true)

    // Add FlutterMethodChannel platform code
    FlutterMethodChannel(
      name: "launch_at_startup", binaryMessenger: flutterViewController.engine.binaryMessenger
    )
    .setMethodCallHandler { (_ call: FlutterMethodCall, result: @escaping FlutterResult) in
      switch call.method {
      case "launchAtStartupIsEnabled":
        result(LaunchAtLogin.isEnabled)
      case "launchAtStartupSetEnabled":
        if let arguments = call.arguments as? [String: Any] {
          LaunchAtLogin.isEnabled = arguments["setEnabledValue"] as! Bool
        }
        result(nil)
      default:
        result(FlutterMethodNotImplemented)
      }
    }
    //

    RegisterGeneratedPlugins(registry: flutterViewController)

    super.awakeFromNib()
  }
}

then open your macos/ folder in Xcode and do the following:

Instructions referenced from "LaunchAtLogin" package repository. Read for more details and FAQ's.

Requirements

macOS 10.13+

Install

Add https://github.com/sindresorhus/LaunchAtLogin in the “Swift Package Manager” tab in Xcode.

Usage

Skip this step if your app targets macOS 13 or later.

Add a new “Run Script Phase” below (not into) “Copy Bundle Resources” in “Build Phases” with the following:

"${BUILT_PRODUCTS_DIR}/LaunchAtLogin_LaunchAtLogin.bundle/Contents/Resources/copy-helper-swiftpm.sh"

And uncheck “Based on dependency analysis”.

The build phase cannot run with "User Script Sandboxing" enabled. With Xcode 15 or newer where it is enabled by default, disable "User Script Sandboxing" in build settings.

(It needs some extra works to have our script to comply with the build phase sandbox.) (I would name the run script Copy “Launch at Login Helper”)

Who's using it?

License

MIT

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案