Bom dia a todos, estou fazendo um site no Flutter, mas na área de de contato por email estou com problema ao utilizar o pacote flutter_email_sender, na qual quando preencho o formulário e envio a mensagem, aparece o seguinte erro:
Console:
email - > xxxx@gmail.com message -> hellooo
Error: MissingPluginException(No implementation found for method send on channel flutter_email_sender)
at Object.throw_ (as throw) (http://localhost:58166/dart_sdk.js:5334:11)
at MethodChannel._invokeMethod (http://localhost:58166/packages/flutter/src/services/system_channels.dart.lib.js:954:21)
at _invokeMethod.next (<anonymous>)
at http://localhost:58166/dart_sdk.js:39032:33
at _RootZone.runUnary (http://localhost:58166/dart_sdk.js:38889:58)
at _FutureListener.thenAwait.handleValue (http://localhost:58166/dart_sdk.js:33875:29)
at handleValueCallback (http://localhost:58166/dart_sdk.js:34435:49)
at Function._propagateToListeners (http://localhost:58166/dart_sdk.js:34473:17)
A implementação do site é a seguinte:
import 'package:flutter/material.dart';
import 'package:flutter_email_sender/flutter_email_sender.dart';
class ContactView extends StatefulWidget {
@override
_ContactViewState createState() => _ContactViewState();
}
class _ContactViewState extends State<ContactView> {
var _emailFormKey = GlobalKey<FormState>();
TextEditingController nameController = new TextEditingController();
TextEditingController emailController = new TextEditingController();
TextEditingController messageController = new TextEditingController();
String value;
@override
Widget build(BuildContext context) {
return Column(children: (
//Header page
Padding(
padding: EdgeInsets.only(left: 15.0),
child: Text(
"Contact",
style:
TextStyle(fontWeight: FontWeight.w800, height: 3.0, fontSize: 24),
),
),
SizedBox(
height: 30,
),
//Enter Forms
Form(
key: _emailFormKey,
child: Column(
children: (
Container(
margin: EdgeInsets.only(top: 50, left: 15, right: 15),
child: TextFormField(
controller: nameController,
//Validator name
validator: (value) {
if (value.isEmpty) {
return 'please Enter your name';
}
},
decoration: InputDecoration(
labelText: "Enter name",
border: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.black54, width: 2))),
)),
Container(
margin: EdgeInsets.only(top: 50, left: 15, right: 15),
child: TextFormField(
controller: emailController,
//Validator email
validator: (value) {
if (value.isEmpty) {
return 'please Enter email';
}
},
decoration: InputDecoration(
labelText: "Enter email",
border: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.black54, width: 2))),
)),
Container(
margin: EdgeInsets.only(top: 50, left: 15, right: 15),
child: TextFormField(
controller: messageController,
//Validator message
validator: (value) {
if (value.isEmpty) {
return "please Enter message";
}
},
decoration: InputDecoration(
labelText: "Enter message",
border: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.black54, width: 2))),
)),
Container(
margin: EdgeInsets.only(top: 15),
child: RaisedButton(
child: Text("Send"),
onPressed: () {
if (_emailFormKey.currentState.validate()) {
sendMessage();
}
}),
)
),
))
));
}
//Function to send message
void sendMessage() {
String inputName;
String inputEmail;
String inputMessage;
Email email;
setState(() {
inputEmail = emailController.text;
inputMessage = messageController.text;
inputName = nameController.text;
if (inputMessage.isNotEmpty &&
inputEmail.isNotEmpty &&
inputName.isNotEmpty) {
//package flutter_email_sender
email = Email(
body: inputMessage,
subject: inputName,
recipients: ('xxx@gmail.com'),
isHTML: false,
);
send(email);
}
});
debugPrint('email - > $inputEmail message -> $inputMessage');
}
void send(Email email) async {
await FlutterEmailSender.send(email);
}
}
Neste sentido, gostaria de saber se alguém já passou por este erro ou tem alguma ideia de como resolvê-lo a partir desta implementação, estive pensando se está relacionado ao site ainda não está hospedado. Agradeço desde já quem auxiliar na resolução!!