小编Kar*_*ård的帖子

如何使用带有“mailto:”链接的新 launchUrl() 方法?

我的应用程序中有一个小链接,上面写着“向我们发送电子邮件”。当您单击它时,我希望打开默认电子邮件应用程序,并向我们的电子邮件地址发送一封电子邮件。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)

mailto email-client dart flutter url-launcher

3
推荐指数
2
解决办法
4973
查看次数

对于每个其他请求,状态 500“错误:无法处理该请求”

我制作了一个 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

2
推荐指数
1
解决办法
1052
查看次数