我有一个Ffltter应用程序,其中我正在使用Ffltter_web_view软件包.我在几个不同的文件上使用它,我希望创建它自己的文件,并在我的应用程序中的任何地方简单地引用_Launchwebview函数,因为需要几行代码才能使它工作.我知道如何引用文件和传递信息,但不知道方法/函数.这是班级代码...

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

class ShopClass extends StatefulWidget {
  @override
  ShopClassState createState() => new ShopClassState();
}

class ShopClassState extends State<ShopClass> {
  String _redirectedToUrl;
  FlutterWebView flutterWebView = new FlutterWebView();
  bool _isLoading = false;

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

  @override
  Widget build(BuildContext context) {
    Widget leading;
    if (_isLoading) {
      leading = new CircularProgressIndicator();
    }
    var columnItems = <Widget>[
      new MaterialButton(
          onPressed: launchWebViewExample, child: new Text("Launch"))
    ];
    if (_redirectedToUrl != null) {
      columnItems.add(new Text("Redirected to $_redirectedToUrl"));
    }
    var app = new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          leading: leading,
        ),
        body: new Column(
          children: columnItems,
        ),
      ),
    );
    return app;
  }


  void launchWebViewExample() {
    if (flutterWebView.isLaunched) {
      return;
    }

    flutterWebView.launch("https://apptreesoftware.com",
        headers: {
          "X-SOME-HEADER": "MyCustomHeader",
        },
        javaScriptEnabled: false,
        toolbarActions: [
          new ToolbarAction("Dismiss", 1),
          new ToolbarAction("Reload", 2)
        ],
        barColor: Colors.green,
        tintColor: Colors.white);
    flutterWebView.onToolbarAction.listen((identifier) {
      switch (identifier) {
        case 1:
          flutterWebView.dismiss();
          break;
        case 2:
          reload();
          break;
      }
    });
    flutterWebView.listenForRedirect("mobile://test.com", true);

    flutterWebView.onWebViewDidStartLoading.listen((url) {
      setState(() => _isLoading = true);
    });
    flutterWebView.onWebViewDidLoad.listen((url) {
      setState(() => _isLoading = false);
    });
    flutterWebView.onRedirect.listen((url) {
      flutterWebView.dismiss();
      setState(() => _redirectedToUrl = url);
    });
  }



  void reload() {
    flutterWebView.load(
      "https://google.com",
      headers: {
        "X-SOME-HEADER": "MyCustomHeader",
      },
    );
  }
}

我怎样才能在另一节课上使用launchWebViewExample呢?

推荐答案

您可以使用该函数编写文件,如下所示:

测验飞奔

void launchWebView () {
  print("1234");
}

然后像这样导入该文件:

main.dart

import "测验飞奔";

class _MyHomePageState extends State<MyHomePage> {
   @override
   Widget build(BuildContext context) {
       launchWebView();

它不是很干净,但你可以做到.

class test {
    static void foo() {
        print("1234");
    }
}

然后在代码中这样调用它(在导入之后):

test.foo();

Flutter相关问答推荐

更改BottomNavigationBar onTap?的大小

Flutter 中的多页表现

Flutter 应用程序中的Firebase实时数据库中的orderByChild()不适用于我

如何使排内 children 的身高与其他排内 children 的身高相适应?

如何管理枚举类型的阻塞事件?

将Riverpods NotifierProvider与State类一起使用

Wired Firebase错误-[CLOUD_FIRESTORE/UNAvailable]该服务当前不可用

在Flutter 中创建自定义形状

按一下按钮即可更新 fl_chart

尽管 onCollision 处理了我的角色还是从平台上掉了下来

如何在flutter中更改showModalBottomSheet小部件中CheckboxListTile小部件的值?

创建混合 TextWidget 和 TextFieldWidget

添加appBar时绘制的线条发生偏移 Flu

使用Flutter项目设置Firebase遇到困难?这些解决方案或许能帮到你!

Flutter屏幕适配 - 在模拟器和真实手机上文本尺寸不同

在 Flutter 中更改喜欢按钮的 colored颜色

我的第一个 flutter 项目出错,启动时为空值?

CircleAvatar 在 ListTile 中领先

在 flutter 中使用 StreamBuilder 在文本字段中键入时显示过滤记录

为什么这个循环只发生一次?Flutter /dart