在 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 库

在 Flutter 中的屏幕之间传递数据

MVVM架构在Flutter中的简单实践

Flutter 中的谷歌地图导航

如何在 Flutter 中更新 AnimatedList 中的数据

Flutter 中的 API 调用在第一次加载应用程序时不会加载所需的 JSON - Flutter