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

套件詳情v0.0.6

pwa_install

一個 Flutter 套件,可讓您提示行動網頁使用者將您的 Flutter 應用程式安裝為 PWA

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
3030
喜歡數
100
Pub 分數
140

安裝套件

flutter pub add pwa_install

套件介紹

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

pwa_install 套件讓 Flutter 應用程式能夠提示行動網頁使用者將其應用程式安裝為進階式 Web 應用程式(PWA)。它會偵測使用者是否透過行動裝置上的瀏覽器存取應用程式,並觸發原生安裝提示,提升使用者參與度與留存率。此套件與 Flutter 的 Web 平台無縫整合,支援多種作業系統,包含 Android、iOS、macOS、Windows 與 Linux。它利用瀏覽器層級的 PWA 功能,提供順暢的安裝體驗。

適用情境

  • 提示網路使用者安裝PWA
  • 提高移動瀏覽器上的應用參與度
  • 改進基於 Web 的 Flutter 應用的留存率
  • 透過 PWA 啟用離線存取
  • 簡化跨平台部署
  • 支援混合應用分發

主要特色

  • 檢測行動網頁存取
  • 觸發原生 PWA 安裝提示
  • 跨多個平台運作
  • 所需的設定最少
  • 與 Flutter Web 結合
  • 利用瀏覽器 PWA API

適合對象

  • 開發面向網路的 Flutter 應用程式開發者
  • 針對行動網頁使用者的團隊
  • 旨在採用 PWA 的應用
  • 需要低摩擦安裝的項目
  • 跨平台網頁應用
  • 混合應用策略

使用建議

  • PWA 功能需要 HTTPS
  • 僅限支援 PWA 安裝提示的瀏覽器
  • 可能不會在所有行動裝置上觸發
  • 取決於使用者權限設定
  • 不適用於非網頁平台
  • 安裝行為因瀏覽器而異

原始 README

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

PWA Install

A small Flutter package that allows you to prompt mobile web users to install your Flutter app as a progressive web application (PWA) on demand.

A very basic example can be found here: PWA Install

The contents of this package are based on this article by Pete LePage (@petele)

Out-of-the-Box

As of release 1.20, all Flutter apps can be installed as PWAs. Combine this with the fact that all Chromium based browsers support PWAs and it becomes clear that designing your Flutter application for a mobile browser can be the most effective way of reaching a large audience.

When a Flutter app is opened in a supported browser, the user will see an install prompt like this:

Mobile Prompt Web Prompt
img.png img.png

This is awesome, but there's a caveat. The browser will only show the install prompt to users the first time they open your app. If the user refreshes the page or returns to the app while it's still in their browser history, the prompt will not be shown.

The PWA Install Package

With this package, you can prompt the user to install your app as a PWA on demand (e.g, on a button click). This package works by capturing the beforeinstallprompt event web browsers use to install PWAs. The event is captured when your app is launched and can be called anytime thereafter.

Setup

1. Update index.html

Add the following <script> tag to the body of web/index.html:

<!-- Capture PWA install prompt event -->
<script>
    let deferredPrompt;

    window.addEventListener('beforeinstallprompt', (e) => {
      deferredPrompt = e;
    });

    function promptInstall(){
       deferredPrompt.prompt();
    }

    // Listen for app install event
    window.addEventListener('appinstalled', () => {
      deferredPrompt = null;
      appInstalled();
    });

    // Track how PWA was launched (either from browser or as PWA)
    function getLaunchMode() {
      const isStandalone = window.matchMedia('(display-mode: standalone)').matches;
      if(deferredPrompt) hasPrompt();
      if (document.referrer.startsWith('android-app://')) {
        appLaunchedAsTWA();
      } else if (navigator.standalone || isStandalone) {
        appLaunchedAsPWA();
      } else {
        window.appLaunchedInBrowser();
      }
    }
</script>

2. Call PWAInstall().setup()

The following method can be called in main.dart before calling runApp(). PWAInstall() is instantiated as a singleton so you can use the class directly.

Future<void> main() async {

  // Add this
  PWAInstall().setup(installCallback: () {
    debugPrint('APP INSTALLED!');
  });

  runApp(MaterialApp(home: App()));
}

3. Check if the Install Prompt is enabled

Before calling the promptInstall_() method, you can check if the Install Prompt is available using PWAInstall().installPromptEnabled.

installPromptEnabled will be true if:

  • [x] The app was launched in a browser (It doesn't make sense to prompt a PWA install if the app is already running as a PWA)
  • [x] The beforeinstallprompt event was captured.

promptInstall_() won't do anything if installPromptEnabled is false so you should check this flag before attempting to call the prompt.

4. Call PWAInstall().promptInstall_()

Finally, call PWAInstall().promptInstall_() to show the install prompt.

Prompt Config

App Name

You can change the app name that's displayed in the prompt by updating the "name" field in web/manifest.json.

img.png

App Logo

The logo displayed in the prompt also comes from the web/manifest.json file.

  1. (Optional) Use a website like favicon.io to generate your web icons
  2. Add your logos to the web/icons folder

img.png

  1. Add the following lines to the tag in index.html:
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">

img.png

Screenshots

In addition to the name and logo, you can also add optional screenshots to the manifest.json file.

"screenshots": [{
    "src": "images/app_screenshot.webp",
    "platform": "windows",
    "label": "PWA is the way!"
  }],

Note that the screenshots will not appear in every browser. After they are added, your new install prompt will look like this: images

Troubleshooting

Supported Browsers

You can find all supported browsers here.

Support

Buy Me A Coffee

Keep My Lights On

:heart: Sponsor on GitHub

所屬分類

依賴

依賴清單 1 項

  • js^0.7.1

原始碼儲存庫

使用此套件的專案