我正在为 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) 当用户尝试刷新浏览器中的当前页面时,我需要重定向到根页面。默认行为是打开同一页面。我尝试使用onBeforeUnload(此答案)和window.location.replace或进行重定向Navigator.push,但都不起作用。
情况: 我正在 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 函数?
我想从存储中获取文件后获取文件的大小这 是我获取大小的代码
trailing: FutureBuilder<int>(
builder: (context, snapshot) {
return Text(snapshot.data.toString());
},
future: files[index].length(),
),
Run Code Online (Sandbox Code Playgroud) 我创建了一个抖动的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路径
我有一个使用Flutter Web创建的简单Web应用程序。我想知道如何external url在a new tab或在the same tabFlutter Web应用程序中打开新的a 。说我想打开网址/sf/
我尝试通过此终端命令在本地启动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) 由于 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) 我是扑的新手。我已经开发了 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) 查看 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-web ×10
flutter ×9
dart ×6
browser ×1
callback ×1
deep-linking ×1
flutter-test ×1
gorouter ×1
javascript ×1
redirect ×1
reload ×1