use*_*307 4 hyperlink flutter-web
我正在使用url_launcher包。
在 Flutter web 中时,我希望 url 在当前页面中打开,而不是在 target="_blank"
我尝试添加 forceWebView: true,
if (await canLaunch(url)) {
await launch(
url,
forceSafariVC: true,
forceWebView: true,
headers: <String, String>{'target': '_self'},
);
} else {
throw 'Could not launch $url';
}
Run Code Online (Sandbox Code Playgroud)
并且还添加了标题,认为他们可能有事情要做,但他们没有。
有没有办法做到这一点?谢谢
在移动设备和网络中打开 url 的任何其他解决方案也被接受
Abh*_*ran 11
在 flutter_web 中,如果您想实现这一点,您可以使用该webOnlyWindowName属性并通过_self或_blank取决于您的选择。
_self - 在同一个选项卡中打开。_blank - 在新选项卡中打开。我不确定它的记录是否正确。但是您可以在此处找到对此负责的代码段。
以下是您可以测试的工作解决方案。
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
void main() {
runApp(UrlLauchDemo());
}
class UrlLauchDemo extends StatelessWidget {
String url = 'https://www.google.com';
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
MaterialButton(
color: Colors.greenAccent,
child: Text('Launch Google in this page'),
onPressed: () async {
if (await canLaunch(url)) {
await launch(
url,
forceSafariVC: true,
forceWebView: true,
webOnlyWindowName: '_self',
);
} else {
throw 'Could not launch $url';
}
},
),
SizedBox(
height: 100,
),
MaterialButton(
color: Colors.blueAccent,
child: Text('Launch Google in new Tab'),
onPressed: () async {
if (await canLaunch(url)) {
await launch(
url,
forceSafariVC: true,
forceWebView: true,
webOnlyWindowName: '_blank',
);
} else {
throw 'Could not launch $url';
}
},
),
],
),
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
更新:12.01.2021 此信息记录在此处的 api 文档中
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |