标签: flutter-web

“无法多次设置 URL 策略。” 在 Flutter Web 中使用 go_router 时出错

我正在为 Flutter Web 使用 go_router flutter 包。我在重新加载网站时收到此错误。后退按钮工作得很好,但重新加载会导致这种情况。

断言失败:org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/window.dart:25:10 !_isUrlStrategySet“无法多次设置 URL 策略。”

下面是我的 main.dart 的代码:

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:navigator_2/some_app.dart';

import 'details_page.dart';

void main() {
runApp( MyApp());
}


class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
  final GoRouter _router = GoRouter(
    urlPathStrategy: UrlPathStrategy.path,
    routes: [
  GoRoute(path: '/',builder: (context,state)=> const SomeAppPage()),
  GoRoute(path: '/details',builder: (context,state){
    final query = state.queryParams['index'];
    return DetailsPage(index: int.parse(query!));
  }),
]);
return  MaterialApp.router(
  routeInformationParser: _router.routeInformationParser,
    routerDelegate: _router.routerDelegate ,
    title: 'Go Router Example',
    theme: ThemeData(
      primarySwatch: Colors.blue,
    ), …
Run Code Online (Sandbox Code Playgroud)

deep-linking dart flutter gorouter flutter-web

3
推荐指数
1
解决办法
3770
查看次数

Flutter web - 刷新浏览器时如何重定向到根页面(或任何其他页面)?

当用户尝试刷新浏览器中的当前页面时,我需要重定向到根页面。默认行为是打开同一页面。我尝试使用onBeforeUnload此答案)和window.location.replace或进行重定向Navigator.push,但都不起作用。

browser redirect reload flutter flutter-web

3
推荐指数
1
解决办法
1827
查看次数

获取适用于 Flutter Web RecaptchaVerifier 的 FirebaseAuthPlatform

情况: 我正在 flutter web 上实现 Firebase 电话登录。在此过程中,我想要自定义由 signInWithPhoneNumber 函数调用的 reCAPTCHA,如Firebase 文档中所述。

final ConfirmationResult confirmationResult = await auth.signInWithPhoneNumber(
  phoneNumber, verifier_should_go_here
);
Run Code Online (Sandbox Code Playgroud)

复杂: 我正在尝试实现RecaptchaVerifier,但它有一个名为FirebaseAuthPlatform的必需参数,并且我不知道如何为我的应用程序生成此参数。

问题: 如何创建 RecaptchaVerifier 来传递给 flutter web 上的signInWithPhoneNumber 函数?

firebase-authentication flutter-web

3
推荐指数
1
解决办法
1046
查看次数

如何在 flutter 中将文件大小转换为 mb、kb、gb 等

我想从存储中获取文件后获取文件的大小这 是我获取大小的代码

 trailing: FutureBuilder<int>(
                        builder: (context, snapshot) {
                          return Text(snapshot.data.toString());
                        },
                        future: files[index].length(),
                      ),
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-test flutter-web

3
推荐指数
1
解决办法
3426
查看次数

如何在Firebase托管上托管Flutter Web(Hummingbird)

我创建了一个抖动的Web项目,并在localhost上正常工作。因此,我计划将网站托管在firebase中。我遵循了已成功部署的命令,但在控制台中仅显示黑屏,并显示错误消息。

错误:

源“ https://myportfolioflutterweb.firebaseapp.com/web/main.dart.js ”的加载失败。SyntaxError:期望的表达式,得到了'<'[了解更多]

我的项目结构:

在此处输入图片说明

firebase.json:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "redirects": [
    {
      "source": "/",
      "destination": "/web/index.html",
      "type": 302
    }
  ]
  }
}
Run Code Online (Sandbox Code Playgroud)

命令:

在此处输入图片说明

注意:当我将public dir作为公用文件夹时,它将创建index.html。我手动删除了文件,并导航到web / index.html路径

firebase-hosting flutter flutter-web

2
推荐指数
1
解决办法
1696
查看次数

如何在Flutter网站的新标签页或同一标签页中打开外部网址

我有一个使用Flutter Web创建的简单Web应用程序。我想知道如何external url在a new tab或在the same tabFlutter Web应用程序中打开新的a 。说我想打开网址/sf/

dart flutter flutter-web

2
推荐指数
7
解决办法
1033
查看次数

尝试为flutter_web项目提供服务时,无法创建本地服务器(地址已在使用中)

我尝试通过此终端命令在本地启动Flutter Web项目

 webdev serve --auto restart
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息

    Starting resource servers...Unhandled exception:
SocketException: Failed to create server socket (OS Error: Address already in use, errno = 48), address = 127.0.0.1, port = 8080
#0      _NativeSocket.bind (dart:io-patch/socket_patch.dart:591:7)
<asynchronous suspension>
#1      _RawServerSocket.bind (dart:io-patch/socket_patch.dart:1206:26)
#2      _ServerSocket.bind (dart:io-patch/socket_patch.dart:1466:29)
#3      ServerSocket.bind (dart:io-patch/socket_patch.dart:1457:26)
#4      _HttpServer.bind (dart:_http/http_impl.dart:2520:25)
#5      HttpServer.bind (dart:_http:227:19)
#6      HttpMultiServer.loopback.<anonymous closure> (package:http_multi_server/http_multi_server.dart:113:39)
#7      HttpMultiServer._loopback (package:http_multi_server/http_multi_server.dart:172:30)
<asynchronous suspension>
#8      HttpMultiServer.loopback (package:http_multi_server/http_multi_server.dart:111:12)
#9      WebDevServer.start (package:webdev/src/serve/webdev_server.dart:83:33)
#10     _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:49:6)
#11     WebDevServer.start (package:webdev/src/serve/webdev_server.dart:54:36)
#12     ServerManager.start (package:webdev/src/serve/server_manager.dart:22:38)
#13     _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:49:6)
#14 …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-web

2
推荐指数
1
解决办法
308
查看次数

排除某些文件/lib 以在 flutter web 中构建

由于 Flutter web 还不支持dart:iolib 并且有很多包依赖于dart:io.

在为我的应用程序构建期间,我收到此错误

transitive libraries have sdk dependencies that not supported on this platform:

app_core|lib/src/blocs/service/user_chat_bloc.dart
mqtt_client|lib/mqtt_client.dart
Run Code Online (Sandbox Code Playgroud)

假设我想在没有mqtt_client.dart或 的情况下构建user_chat_bloc.dart。没有这个库的构建不会对网络造成伤害,但我想保留颤振原生的库。也没有关于如何跳过这些文件的构建的明确文档。

这里的文档https://github.com/dart-lang/build/blob/master/docs/faq.md#how-can-i-resolve-skipped-compiling-warnings也不清楚如何跳过某些文件

我试过这个,build.yaml但没有运气

targets:
  $default:
    builders:
      build_web_compilers|app_core:
        generate_for:
          exclude:
            - lib/src/blocs/service/user_chat_bloc.dart
            - lib/mqtt_client.dart
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-web

2
推荐指数
1
解决办法
2358
查看次数

Flutter 两种方式通信 js 到 dart 和回调结果从 dart 到 js

我是扑的新手。我已经开发了 js 来使用 webview_flutter 进行 flutter dart 通信。像这样 :

Widget build(BuildContext context) {
   return MaterialApp(
      home: Scaffold(
      appBar: AppBar(
         title: const Text('Plugin example'),
         actions: <Widget>[
            MenuList(_controller.future),
         ],
      ),
      body: Builder(builder: (BuildContext context) {
         return WebView(
           initialUrl: localServerUrl,
           javascriptMode: JavascriptMode.unrestricted,
           onWebViewCreated: (WebViewController webViewController) {
             _controller.complete(webViewController);
           },
           javascriptChannels: <JavascriptChannel>[
             _scanBarcode(context),
           ].toSet(),
           onPageFinished: (String url) {
             //TODO : events after page loading finished
           },
        );
     }),
   ),
 );
}

JavascriptChannel _scanBarcode(BuildContext context) {
  return JavascriptChannel(
     name: 'Barcode',
     onMessageReceived: (JavascriptMessage message) {
       String result …
Run Code Online (Sandbox Code Playgroud)

javascript callback dart flutter flutter-web

2
推荐指数
1
解决办法
3109
查看次数

SetOptions 在 Firestore Flutter WEB 中不起作用

查看 Flutter Web。似乎 Firestore Flutter Web 集成还没有完全实现。试图传递 {merge: true} 参数:

webFirestore
    .collection("/users")
    .doc(uid)
    .set(map, {merge: true});
Run Code Online (Sandbox Code Playgroud)

{merge: true} 下划线为红线。尝试了不同的格式,都不起作用。有谁知道语法需要看起来像什么?

这就是 firestore 文档所说的:

/// An object to configure the [WriteBatch.set] behavior.
/// Pass [: {merge: true} :] to only replace the values specified in
/// the data argument. Fields omitted will remain untouched.
@anonymous
@JS()
abstract class SetOptions {
  /// Set to true to replace only the values from the new data.
  /// Fields omitted will remain untouched.
  external bool get …
Run Code Online (Sandbox Code Playgroud)

flutter google-cloud-firestore flutter-web

2
推荐指数
1
解决办法
1375
查看次数