我的应用程序中有一个小链接,上面写着“向我们发送电子邮件”。当您单击它时,我希望打开默认电子邮件应用程序,并向我们的电子邮件地址发送一封电子邮件。launch()我曾经用包中的方法让它完全做到这一点,url_launcher如下所示:
import 'package:url_launcher/url_launcher.dart' as url;
Future<bool?> pressedSendUsEmail() async {
bool? success;
try {
print('Pressed Send us an e-mail...');
success = await url.launch('mailto:our.email@gmail.com'); // Works like a charm...
print('success is $success');
} catch (e) {
print('Caught an error in Send us an e-mail!');
print('e is: ${e.toString()}');
}
return success;
}
Run Code Online (Sandbox Code Playgroud)
但现在,我收到一条警告,说launch()已弃用!我应该用它launchUrl()来代替。但launchUrl()不接受 String 参数,它接受 Uri 参数...并且我不知道如何正确编写此 Uri,以便它执行我想要的操作!我试过:
success = await url.launchUrl(Uri(path: 'mailto:our.email@gmail.com'));
Run Code Online (Sandbox Code Playgroud)
但这会引发错误,因为它无法解释“:”字符。我试过了:
success = await url.launchUrl(
Uri.https('mailto:our.email@gmail.com', ''),
);
Run Code Online (Sandbox Code Playgroud)
这会启动链接,但在浏览器中......并且不会启动发送到预先打印的地址的电子邮件。我尝试添加:
success …Run Code Online (Sandbox Code Playgroud) 我制作了一个 Flutter 应用程序,刚刚开始使用 Cloud Functions 向其他手机发送推送通知。我通过 API 调用来调用云函数,也就是说,消息被发送,我得到响应代码 200。但有趣的是,大约每隔一段时间(有时更多,有时更少)我得到回复:
状态代码:500,正文:“错误:无法处理请求”
这特别奇怪,因为目前,我每次都发送完全相同的消息!...正如,它是完全相同的 API 调用,没有标头和完全相同的正文。然而,我得到了不同的结果。问题可能是什么?
这是我的云功能:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
exports.sendMsg = functions.https.onRequest((request, response) => {
var decodedBody = JSON.parse(request.body);
const message = decodedBody;
// Send a message to the device corresponding to the provided
// registration token:
admin.initializeApp();
admin.messaging().send(message)
.then((res) => {
// Response is a message ID string.
console.log("Successfully sent message:", res);
response.send("Message sent!\n\n" + res);
})
.catch((error) => {
console.log("Error sending message:", error);
response.send("Error sending …Run Code Online (Sandbox Code Playgroud) javascript http-status-code-500 flutter google-cloud-functions firebase-cloud-messaging