Home > Software design >  Receiving the error while implementing URL to my app
Receiving the error while implementing URL to my app

Time:08-04

Recently I've managed to implement an URL to my app to improve the knowledge about each card. However, when I used canLaunch and Launch everything was fine, but when I updated to canLaunchUrl and LaunchUrl, I got an error message 'The argument type 'String' can't be assigned to the parameter type 'Uri'.' Even after I corrected my androidmanifest problems, I'm still this problem. How to resolve it?

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

final Uri url = Uri.parse('https://flutter.dev');


class analgesicos extends StatefulWidget {
  const analgesicos({Key? key}) : super(key: key);

  @override
  State<analgesicos> createState() => _analgesicosState();
}

class _analgesicosState extends State<analgesicos> {
  @override
  Widget build(BuildContext context) {

    return Scaffold(

      backgroundColor: Colors.white,

        appBar: AppBar(

        backgroundColor: Colors.teal,
        centerTitle: true,
        title: Text('Analgésicos',style: TextStyle(
        fontFamily: 'fonts/Quicksand-Light.ttf',
        fontSize: 22,

    ),),
    ),
      body:

      SingleChildScrollView(child: Container(
        child: (
            Column(crossAxisAlignment: CrossAxisAlignment.stretch,
              children: [
                Padding(padding: const EdgeInsets.only(top: 10, bottom: 10),),
                Container(width: 240.0,
                  height: 42.0,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(20.0),
                    color: const Color(0xffc5fce1),
                  ),
                  child: SizedBox(
                    child: Text(
                      'Não-opióides',
                      style: TextStyle(
                        fontFamily: 'Quicksand',
                        fontSize: 20,
                        color: Colors.black,
                        height: 1.7,
                      ),
                      textAlign: TextAlign.center,
                    ),
                  ),
                ),
                Divider(
                    height: 15),

                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Ácido acetilsalicílico', textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Comprimidos simples de 500 ou 650 mg
Indicação: Antipirético e analgésico.
Posologia odontológica: Uso interno (via oral)
Tomar 1 comprimido de 6/6 horas.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),

                Material(
                  child: (Card(
                    color: Colors.white,

                    child: GestureDetector(
                      child: Text("Bula ANVISA", textAlign: TextAlign.center,
                          style: TextStyle(decoration: TextDecoration.underline,
                        color: Colors.teal,
                        fontSize:18,
                        fontWeight: FontWeight.w500,
                      )),
                      onTap: () async {
                        const url = 'https://consultas.anvisa.gov.br/#/bulario/q/?nomeProduto=ACIDO ACETILSALICILICO';
                        if (await canLaunchUrl(url)) {
                          await launchUrl(url);
                        } else
                          // can't launch url, there is some error
                          throw "Could not launch $url";
                      },
                    ),
                  )),
                ),

                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Dipirona sódica',textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Comprimidos simples de 500 e 1000 mg
Indicação: Dores leves ou moderadas, antipirético
Posologia odontológica: Uso interno (via oral)
Tomar 1 comprimido de 500 mg de 4/4 h ou 1000 mg de 6/6 horas, não ultrapassando 4 g diárias.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),

                const Material(
                  child: (const Card(
                    color: Colors.white,
                    child: ListTile(
                      title: Text('Bula ANVISA'),
                    ),
                  )),
                ),
                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Dipirona sódica',textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Solução, gotas de 500 mg
Indicação: Dores leves ou moderadas, antipirético
Posologia odontológica: Uso interno (via oral)
Tomar 1 gota por cada 1 - 2 kg (peso), a cada 4/4 ou 6/6 horas.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),


                const Material(
                  child: (const Card(
                    color: Colors.white,
                    child: ListTile(
                      title: Text('Bula ANVISA'),
                    ),
                  )),
                ),
                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Paracetamol',textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Comprimidos simples de 500 e 750 mg
Indicação: Dores leves ou moderadas, antipirético
Posologia odontológica: Uso interno (via oral)
Tomar 1 comprimido de 500 mg 4/4 horas, 750 mg de 6/6 horas, não ultrapassando 4 g diárias.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),

                const Material(
                  child: (const Card(
                    color: Colors.white,
                    child: ListTile(
                      title: Text('Bula ANVISA'),
                    ),
                  )),
                ),
                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Paracetamol',textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Solução, gotas de 500 mg
Indicação: Dores leves ou moderadas, antipirético
Posologia odontológica: Uso interno (via oral)
Acima de 12 anos: Tomar 35 - 55 gotas, de 3 a 5 vezes ao dia.
Pediátricos: 1 gota/kg, não ultrapassando 35 gotas, 4/4 ou 6/6 horas.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),


                const Material(
                  child: (const Card(
                    color: Colors.white,
                    child: ListTile(
                      title: Text('Bula ANVISA'),
                    ),
                  )),
                ),
                Padding(padding: const EdgeInsets.only(top: 10, bottom: 10),),
                Container(width: 240.0,
                  height: 42.0,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(20.0),
                    color: const Color(0xffc5fce1),
                  ),
                  child: SizedBox(
                    child: Text(
                      'Opióides',
                      style: TextStyle(
                        fontFamily: 'Quicksand',
                        fontSize: 20,
                        color: Colors.black,
                        height: 1.7,
                      ),
                      textAlign: TextAlign.center,
                    ),
                  ),
                ),
                Divider(
                    height: 15),
                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Tylex - Paracetamol   Fosfato de Codeína',textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Comprimidos simples de paracetamol 350 mg   fosfato de Codeína 7,5/30 mg
Indicação: Dor moderada a intensa
Posologia odontológica: Uso interno (via oral)
Tomar 1 comprimido de 6/6 horas.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),

                const Material(
                  child: (const Card(
                    color: Colors.white,
                    child: ListTile(
                      title: Text('Bula ANVISA'),
                    ),
                  )),
                ),
                const Material(
                  child: (const Card(
                    child: ListTile(
                      title: Text('Tramal - Cloridrato de Tramadol',textScaleFactor: 1.2,),
                      subtitle: Text('''
Apresentação: Cápsulas de 50 mg
Indicação: Dor moderada a intensa
Posologia odontológica: Uso interno (via oral)
Tomar 1 cápsula de 8/8h.''',textScaleFactor: 1.2,),
                    ),
                  )),
                ),


                const Material(
                  child: (const Card(
                    color: Colors.white,
                    child: ListTile(
                      title: Text('Bula ANVISA'),
                    ),
                  )),
                ),
              ],)
        ),

      ),

      ));
  }
}

CodePudding user response:

You need to convert String to Uri as you did it for flutter.dev

onTap: () async {
  final  url = Uri.parse(
      'https://consultas.anvisa.gov.br/#/bulario/q/?nomeProduto=ACIDO ACETILSALICILICO');

  if (await canLaunchUrl(url)) {
    await launchUrl(url);
  } else
    // can't launch url, there is some error
    throw "Could not launch $url";
},
  • Related