在 Flutter Web 的新选项卡中打开 url 时出现空白页面(需要刷新)
Blank page when open url in new tab in Flutter Web (need to refresh)
我正在 Flutter web 中构建一个 url,并使用 JS 在新选项卡中打开它。它可以正常打开,但不要加载 url 和 return 空白页。我每次都需要手动 load/refresh 选项卡。
import 'dart:js' as js;
js.context.callMethod('open', [_buildUrl(category, id)]);
String _buildUrl(String category, int id) {
return "$_baseUrl/$category/$id";
}
这是正常行为还是我错过了什么?
提前致谢
以上方法对我来说效果很好。以下是我尝试过的 -
在代码段中,方法 1 是使用 Uri.base 触发同一网站内的另一个页面;并且它正在按预期打开一个新选项卡。
import 'dart:js' as js;
import 'dart:html' as html;
Widget build(BuildContext context) {
return Scaffold(
body: ElevatedButton(
onPressed: () {
// Method 1
js.context.callMethod('open', [_buildUrl("Grocery", 101)]);
// Method 2 - Alternative
//html.window.open(_buildUrl("Grocery", 101), "new tab");
},
child: const Text('using JS method'),
),
);
}
String _buildUrl(String category, int id) {
return "${Uri.base}$category/$id";
}
或者,如果还是麻烦,可以尝试使用Flutter中html库中的window.open()方法。我在上面的代码片段中将其称为方法 2。这也将在同一浏览器中打开一个新选项卡。
我正在 Flutter web 中构建一个 url,并使用 JS 在新选项卡中打开它。它可以正常打开,但不要加载 url 和 return 空白页。我每次都需要手动 load/refresh 选项卡。
import 'dart:js' as js;
js.context.callMethod('open', [_buildUrl(category, id)]);
String _buildUrl(String category, int id) {
return "$_baseUrl/$category/$id";
}
这是正常行为还是我错过了什么?
提前致谢
以上方法对我来说效果很好。以下是我尝试过的 -
在代码段中,方法 1 是使用 Uri.base 触发同一网站内的另一个页面;并且它正在按预期打开一个新选项卡。
import 'dart:js' as js;
import 'dart:html' as html;
Widget build(BuildContext context) {
return Scaffold(
body: ElevatedButton(
onPressed: () {
// Method 1
js.context.callMethod('open', [_buildUrl("Grocery", 101)]);
// Method 2 - Alternative
//html.window.open(_buildUrl("Grocery", 101), "new tab");
},
child: const Text('using JS method'),
),
);
}
String _buildUrl(String category, int id) {
return "${Uri.base}$category/$id";
}
或者,如果还是麻烦,可以尝试使用Flutter中html库中的window.open()方法。我在上面的代码片段中将其称为方法 2。这也将在同一浏览器中打开一个新选项卡。