パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v0.7.4

web_browser

ウェブブラウザウィジェット。webview_flutterとは異なり、クロスプラットフォームのナビゲーションおよびURL共有ウィジェットを備えています。Android、iOS、ブラウザ、その他のプラットフォームで動作します。

AndroidiOSmacOS
30日間ダウンロード
100
いいね数
71
Pub ポイント
140

パッケージをインストール

flutter pub add web_browser

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

web_browser パッケージは、Flutter用のクロスプラットフォームWebブラウザウィジェットを提供し、組み込みのナビゲーションコントロールとURL共有機能を備えています。webview_flutterとは異なり、UIコンポーネントが一貫しているため、Android、iOS、macOS、Webプラットフォームでスムーズに動作するように設計されています。ウェブコンテンツの埋め込みを簡素化しつつ、プラットフォーム固有の挙動やユーザー体験の基準を維持します。戻る/進むボタンや共有可能なURLといった直感的なナビゲーションツールを備えており、一般的なブラウザ機能を再発明せずに統合されたブラウジング機能が必要なアプリに最適です。

用途

  • モバイルおよびデスクトップアプリケーションにウェブコンテンツを埋め込む
  • ナビゲーション付きのアプリベースのブラウザの構築
  • アプリ内からURLを共有する
  • ハイブリッドWebネイティブアプリケーションの作成
  • 複数のプラットフォームでアプリ内ブラウジングを有効化する

主な機能

  • クロスプラットフォーム互換性(Android、iOS、macOS、Web)
  • 組み込みナビゲーションコントロール
  • URL共有統合
  • プラットフォーム間で一貫したUI
  • 軽量で統合が簡単

適している対象

  • ウェブコンテンツを使用してマルチプラットフォームアプリを構築する開発者
  • シンプルなブラウザ機能を必要とするアプリ
  • 埋め込みWebビューからURLを共有する必要があるプロジェクト
  • カスタムWebViewの実装を回避したいチーム
  • ネイティブのようなブラウジングを求めるハイブリッドアプリ開発者

注意事項

  • 純正WebViewに比べてカスタマイズの選択肢が限られている
  • プラットフォーム固有のレンダリング動作に依存しています
  • 一部のプラットフォームでは追加の権限が必要になる場合があります
  • 複雑なウェブアプリホスティングには適していない
  • 古いデバイスではパフォーマンスが異なる場合があります

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Pub Package Github Actions CI

Overview

The package gives you Browser, a Flutter widget for displaying web pages.

The package is built on top of webview_flutter and it adds navigation widgets that:

  • Display the domain.
  • Allow user to tap "back", "forward", "refresh", or share the URL using a native dialog of each platform.
  • Display website loading error messages in a visually pleasant and easy-to-understand way.

Browser has been tested in Android, iOS, and browsers. By adding relevant "webview_flutter" plugin dependencies to your "pubspec.yaml", you can use this package in Windows, Mac OS X, and Linux too.

Licensed under the Apache License 2.0.

Links

Setting up

1.Setup

In pubspec.yaml:

dependencies:
  web_browser: ^0.7.4

2.Display web browser

import 'package:flutter/material.dart';
import 'package:web_browser/web_browser.dart';

void main() {
  runApp(const MaterialApp(
    home: Scaffold(
      body: SafeArea(
        child: Browser(
          initialUriString: 'https://flutter.dev/',
        ),
      ),
    ),
  ));
}

Manual

Default designs

The package contains two designs, Cupertino (web_browser.cupertino) and Material (web_browser.material). By default, the package chooses a Cupertino or Material design based on whether the app is CupertinoApp or MaterialApp. You can override the defaults by using relevant parameters of Browser() constructor.

The Cupertino and Material navigation bars look like this:

Localization

Use BrowserLocalizations to localize the widgets.

void main() {
  runApp(MaterialApp(
    localizations: [
      ...browserLocalizationsList,
      // ...
    ],
    // ...
  ));
}

final browserLocalizationsList = [
  // Spanish localization
  BrowserLocalizations.forLocale(
    locale: Locale('es'),
    load: (locale) async => BrowserLocalizations(
      couldNotReach: 'No se pudo acceder al sitio web.',
      // ...
    ),
  ),
];

Setting various parameters

You can give various parameters to Browser:

import 'package:flutter/material.dart';
import 'package:web_browser/web_browser.dart';

void main() {
  runApp(const MaterialApp(
    home: Scaffold(
      body: SafeArea(
        child: Browser(
          initialUriString: 'https://flutter.dev/',
          controller: BrowserController(
            // "User-Agent" HTTP header.
            userAgent: 'Your user agent',
            
            // Can user zoom into the content? Default is true.
            isZoomingEnabled: false,
          )
        ),
      ),
    ),
  ));
}

Cache clearing

For end-users privacy, it is good to clear:

  • Cookies
  • Caches
  • Local storage

You can enable this by setting:

import 'package:web_browser/web_browser.dart';

void main() {
  // Clear when the app is started
  BrowserController.resetGlobalStateAtStart = true;
  
  // Clear every now and then.
  BrowserController.globalStateExpiration = const Duration(days: 1);
  
  // ...
}

Accessing WebViewController

To access WebViewController by using browserController.webViewController.

カテゴリー

依存関係

依存関係一覧 6 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。