5
votes

Comment utiliser user-agent dans Webview-Flutter Flutter?

J'ai essayé d'utiliser le plugin webview_flutter dans Flutter. Mais impossible de trouver pour définir useragent là-dedans. Ça devrait être là, non? c'est une fonction de base de la visualisation Web. Y a-t-il un moyen d'y parvenir? Merci d'avance.


1 commentaires

Après des recherches, j'ai trouvé cela et testé avec succès. const user_agent = 'Mozilla / 5.0 (Linux; Android 6.0; Nexus 5 Build / MRA58N) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 62.0.3202.94 Mobile Safari / 537.36';


3 Réponses :


0
votes

Essayez d'utiliser le Flutter_webview_plugin ici

vous pouvez ajouter les variables ci-dessous (y compris userAgent) comme vu dans leur documentation:

Future<Null> launch(String url, {
   Map<String, String> headers: null,
   bool withJavascript: true,
   bool clearCache: false,
   bool clearCookies: false,
   bool hidden: false,
   bool enableAppScheme: true,
   Rect rect: null,
   **String userAgent: null,**
   bool withZoom: false,
   bool withLocalStorage: true,
   bool withLocalUrl: true,
   bool scrollBar: true,
   bool supportMultipleWindows: false,
   bool appCacheEnabled: false,
   bool allowFileURLs: false,
});


0 commentaires

4
votes
WebView(
  userAgent: "random",
  initialUrl: "https://stackoverflow.com/questions/54102162/how-to-use-user-agent-in-webview-flutter-flutter",
)

0 commentaires

2
votes

Vous pouvez utiliser mon plugin flutter_inappwebview , qui est un plugin Flutter qui vous permet d'ajouter des WebViews en ligne ou ouvrez une fenêtre de navigateur dans l'application et propose de nombreux événements, méthodes et options pour contrôler les vues Web.

Pour définir un agent utilisateur personnalisé, vous pouvez simplement utiliser l'option userAgent de InAppWebViewOptions . Exemple complet:

import 'dart:async';

import 'package:flutter/material.dart';

import 'package:flutter_inappwebview/flutter_inappwebview.dart';

Future main() async {
  runApp(new MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: InAppWebViewPage()
    );
  }
}

class InAppWebViewPage extends StatefulWidget {
  @override
  _InAppWebViewPageState createState() => new _InAppWebViewPageState();
}

class _InAppWebViewPageState extends State<InAppWebViewPage> {
  InAppWebViewController webView;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
            title: Text("InAppWebView")
        ),
        body: Container(
            child: Column(children: <Widget>[
              Expanded(
                child: Container(
                  child: InAppWebView(
                    initialUrl: "https://flutter.dev/",
                    initialHeaders: {},
                    initialOptions: InAppWebViewWidgetOptions(
                      inAppWebViewOptions: InAppWebViewOptions(
                        debuggingEnabled: true,
                        userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
                      ),
                    ),
                    onWebViewCreated: (InAppWebViewController controller) {
                      webView = controller;
                    },
                    onLoadStart: (InAppWebViewController controller, String url) {

                    },
                    onLoadStop: (InAppWebViewController controller, String url) {

                    },
                  ),
                ),
              ),
            ]))
    );
  }
}


0 commentaires