Я создаю макет карты во Flutter, используя Cloud Firestore. Карта содержит изображение, две кнопки Icon и немного текста. Я хочу, чтобы IconButtons открывал URL-ссылки, которые я добавляю как строку в Firebase. Как мне сделать это с пакетом url_launcher? Я попытался заменить const url = 'example.com';
внутри функции _launchURL
на const url = record.url
, но goth выдал неопределенную ошибку для record
.
Я очень новичок в разработке и Stackoverflow, поэтому, если я смогу лучше структурировать вопрос, пожалуйста, дай мне знать. Спасибо!
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
IconButton(
icon: Icon(FontAwesomeIcons.youtube),
onPressed: _launchURL(),
),
IconButton(
icon: Icon(FontAwesomeIcons.google),
onPressed: _launchURL(),
),
],
),
Container(
child: Text(record.gameParagraph),
),
],
),
_launchURL() async {
const url = 'example.com'; // URL to be added from Cloud Firestore
if (await canLaunch(url)){
await launch(url);
} else {
throw 'Could not launch $url';
}
}
class Record {
final String gameParagraph;
final String url;
final DocumentReference reference;
Record.fromMap(Map<String, dynamic> map, {this.reference})
: assert(map['gameParagraph'] != null),
assert(map['url'] != null),
gameParagraph = map['gameParagraph'],
url = map['url'];
Record.fromSnapshot(DocumentSnapshot snapshot)
: this.fromMap(snapshot.data, reference: snapshot.reference);
@override
String toString() => "Record<$gameParagraph:$url>";
}