使用url_launcher

时间:2020-11-11 04:32:02

标签: android ios flutter dart search

我正在尝试将每个data name链接到特定的url,而datafiltered。我尝试使用url值来获取index,但它会根据我的搜索不断变化。为了更好地理解,下面显示了一个示例数据示例和url示例。我有几个主题,每个主题都有自己的数据名称和url数据,我将需要一种方法来启动正确的url onTap。谢谢

数据示例(在wordsList中声明的数据)

Fruits:
Apple,
Orange,
Banana,
Pear

Color:
Red,
Blue,
Green,
Purple

网址示例

https://example.com/fruits1.html
https://example.com/fruits2.html
https://example.com/fruits3.html
https://example.com/fruits4.html

https://example.com/colors1.html
https://example.com/colors2.html
https://example.com/colors3.html
https://example.com/colors4.html

代码

 List<String> wordsList = [...];
  List<String> filteredWordsList = [];

void _onSearch(value) {
    setState(() {
      filteredWordsList =
          wordsList.where((item) => item.toLowerCase().contains('$value')).toList();
    });
  }

在这里我将数据声明到wordsList中,并且filteredWordsList将在搜索时从wordsList中拉出数据列表。


  @override
  Widget build(BuildContext context) {
  ...
   child: ListView.builder(
                itemCount: filteredWordsList.length,
                itemBuilder: (context, index) {
                  return Card(
                    child: ListTile(
                      title: Text('${filteredWordsList[index]}'),
                      onTap: (){
                    _launch('https://example.com/xxx$index.html');

                      },
                    ),
                  );
                },
              ),

在这里,我需要调用正确的网址。

Future<void> _launch(String url) async{
  
  
    if (await canLaunch(url)) { 
      
      await launch(url, forceSafariVC: true, forceWebView: true , enableJavaScript: true,); 
      
    } else { 
      throw 'Could not launch $url'; 
    } 
}

这是我的url_launcher

0 个答案:

没有答案