在 Flutter 中的 TextFormField 中,用户输入一个 url 或网站链接以将其保存到 firebase 数据库,并且应该使用浏览器打开该链接
Posted
技术标签:
【中文标题】在 Flutter 中的 TextFormField 中,用户输入一个 url 或网站链接以将其保存到 firebase 数据库,并且应该使用浏览器打开该链接【英文标题】:In a TextFormField in flutter user enters a url or website link to save it to firebase database and the link should be opened with browser 【发布时间】:2020-12-24 14:12:28 【问题描述】:在 Flutter 的 TextFormField 中,我想输入一个 url 或网站链接以将其保存到 firebase 数据库,并且应该使用浏览器打开链接,即在保存并将其保存到 firebase 数据库之前应该可以点击它。
它应该打开网站或与浏览器等链接。
flutter中如何实现这个功能
我用过 url_launcher: 插件并导入 import 'package:url_launcher/url_launcher.dart';
我的代码如下
child: TextFormField(
validator: (value)
if(value.isEmpty)
return "Please write the Company Website of production";
else
website = value;
,
keyboardType: TextInputType.name,
autofocus: false,
// controller: _controller,
decoration: InputDecoration(
labelText: ' Company Website ',
hintText: 'Enter the Company Website',
prefixIcon: IconButton(
onPressed: () async
if (await canLaunch("url"))
await launch("url");
,
icon: Icon(Icons.open_in_browser),
),
),
maxLength: 15,
)
请指导我解决此问题。
【问题讨论】:
【参考方案1】:你可以试试下面的代码,这对你有帮助
TextFormField(
keyboardType: TextInputType.name,
autofocus: false,
controller: textEditingController,
decoration: InputDecoration(
labelText: ' Company Website ',
hintText: 'Enter the Company Website',
prefixIcon: IconButton(
onPressed: () async
if(textEditingController.text.toString() == null || textEditingController.text.toString() == "")
print("null data");
else
print(textEditingController.text.toString());
if (await canLaunch("https://" + textEditingController.text.toString()))
await launch("https://" + textEditingController.text.toString());
else
throw 'Could not launch $textEditingController.text.toString()';
,
icon: Icon(Icons.open_in_browser),
),
),
maxLength: 15,
),,
【讨论】:
很抱歉在实现您的代码之前询问您,但此代码会打开用户在浏览器中输入的网站或链接,即打开网站或链接吗? 是的,你可以试试这个只需添加正确的站点链接@srk2k14 是的,请@srk2k14 谢谢您,我看到它只是打印输入的网站链接或 url,但是点击图标它也应该打开 url,这没有发生。请修复它。 好的@srk2k14 只是一分钟以上是关于在 Flutter 中的 TextFormField 中,用户输入一个 url 或网站链接以将其保存到 firebase 数据库,并且应该使用浏览器打开该链接的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 和 Openlayers - 包括 Flutter 中的 js 库