我正在尝试为Flutter Web 平台设置 Firebase Push 。
我复制了与各种教程中所示相同的设置并遇到以下错误,
Uncaught (in promise) Error: [firebase_messaging/failed-service-worker-registration] Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ('http://localhost:61027/firebase-cloud-messaging-push-scope') with script ('http://localhost:61027/firebase-messaging-sw.js'): The script has an unsupported MIME type ('text/html')
Run Code Online (Sandbox Code Playgroud)
这是我的 Index.html 的摘录
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('flutter-first-frame', function () {
navigator.serviceWorker.register('/flutter_service_worker.js')
.then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', …Run Code Online (Sandbox Code Playgroud) 我正在探索 flutter-web 并想在其中添加谷歌地图。虽然,我在 flutter-app 中使用 google_maps_flutter 使用了谷歌地图,但这适用于 Android 和 iOS。
我在我的 Flutter Web 应用程序上使用 Firebase 身份验证,但会话在刷新期间没有保留。
这是我正在使用的包。
https://pub.dev/packages/firebase
这就是我使用 Firebase 进行身份验证的方式
static Future<User> handleSignInEmail(String email, String password) async {
await init();
final UserCredential userCredential =
await auth().signInWithEmailAndPassword(email.trim(), password);
assert(userCredential.user != null);
assert(await userCredential.user.getIdToken() != null);
final User currentUser = await userCredential.user;
assert(userCredential.user.uid == currentUser.uid);
print('signInEmail succeeded: $userCredential.user');
return userCredential.user;
}
Run Code Online (Sandbox Code Playgroud)
如果我刷新页面并调用以下方法,则返回的用户为空:
static Future<User> getFirebaseUser() async {
await init();
return await auth().currentUser;
}
Run Code Online (Sandbox Code Playgroud)
使用 Flutter Mobile 的类似实现按预期工作。我在 Flutter Web 实现中遗漏了什么?
我想知道如何导航到 Flutter Web 应用程序中的 URL。
目前正在使用Navigator.of(context).push(MaterialPageRoute(...));,我只能进入localhost:5354/#/地址栏。
另外,我想知道如何通过将 URL 粘贴到浏览器的地址栏中直接导航到特定的 URL。
如何在颤振网络中检测鼠标滚轮滚动?看起来它会在手势检测器中,但我在那里看不到它。列表视图如何检测鼠标滚动?
截至目前,我们可以将 Flutter Web 应用程序作为单个文件启动,该文件将立即加载,因此需要花费大量时间和带宽来加载,这并不理想,有没有办法一次只加载一个页面,而不是整个网络应用程序。我的意思是,一次加载一个小部件。
任何建议将不胜感激。
我是颤振开发的新手。当我尝试使用 flutter 在本地创建我的应用程序时工作正常。但是如果我在解决依赖关系后尝试导入其他 repo,它仍然无法正常工作。
我做了什么:
错误日志:
--initialize-from-dill build\cache.dill.track.dill --platform
file:///C:/Users/user/Documents/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk.dill
[ +197 ms] <- compile org-dartlang-app:/web_entrypoint.dart
[+1275 ms]
Compiler message:
[ +1 ms] org-dartlang-app:/web_entrypoint.dart:7:8: Error: Error when reading 'lib/generated_plugin_registrant.dart':
The system cannot find the file specified.
[ ] import 'package:neucalcu/generated_plugin_registrant.dart';
[ ] ^
[+5310 ms] org-dartlang-app:/web_entrypoint.dart:10:3: Error: Method not found: 'registerPlugins'.
[ +1 ms] registerPlugins(webPluginRegistry);
[ ] ^^^^^^^^^^^^^^^
[+33861 ms] Syncing files to …Run Code Online (Sandbox Code Playgroud) 我知道 Flutter 支持使用 Skia 而不是 DomCanvas 在Flutter Web 中使用 WASM CanvasKit,即“Skia + WebAssembly”。
我听说这提供了显着的性能改进,但是,我不知道如何启用它。
我有这个项目,我必须编写一个网站以及 ios 和 android 应用程序。
我必须在非常有限的团队(基本上是我自己)的帮助下完成这项工作。因此,我希望在这些平台之间共享尽可能多的代码,以避免尽可能地维护不同的代码库。
我开始考虑 flutter:dart 中的逻辑(以及与后端的交互)可以编译为 ios 和 android,也可以编译为 javascript 以供网站调用。我也喜欢使用 flutter 构建 UI 的方式。
对于网站,我知道有 flutter web 可用于制作网络应用程序,但我希望我的网站感觉更像是一个网站,而不是一个单页应用程序。我想过用React+Gatsby来做网站的ui,同时调用dart编译的js进行逻辑。这将实现高页面加载速度、良好的搜索引擎优化,同时通过 dart 到 js 编译保持 React 应用程序的交互性和单一代码库逻辑。
我想知道这对您来说是否是一个好方法,如果不是,您会如何做。
在这种方法中,我想知道是否可以将 flutter web 小部件嵌入到 React js 组件中,始终关注维护尽可能低的平台特定代码。除了将它们嵌入到 iframe 中之外,我还没有找到任何其他方法来做到这一点,这似乎不是一个好主意,不是吗?
我有一个父 StatefulWidget 和子 StatefulWidget。goToPreviousItem我想从子窗口小部件调用父窗口小部件的函数。
家长班
class Parent extends StatefulWidget {
@override
_ParentState createState() => _ParentState();
}
class _ParentState extends State<Parent> {
String item = 0;
@override
Widget build(BuildContext context) {
return ChildClass();
}
goToPreviousItem(value){
setState(() {item = value});
}
}
Run Code Online (Sandbox Code Playgroud)
儿童班
class Child extends StatefulWidget {
@override
_ChildState createState() => _ChildState();
}
class _ChildState extends State<Child> {
@override
Widget build(BuildContext context) {
return Container(
child: FlatButton(
color: Color(0XFFEFEFEF),
textColor: primaryColor,
disabledColor: Colors.grey,
disabledTextColor: Colors.black,
padding: EdgeInsets.symmetric(
vertical: 15.0, …Run Code Online (Sandbox Code Playgroud)