HarmonyOS 打开系统邮箱并且展示邮件地址

通过Want和context打开了系统邮箱,但是要发送的邮件地址,能通过哪个参数传过去(邮箱地址默认展示在打开的系统邮箱里,就像手机号,直接展示在拨打电话的页面),Want中的Uri还是其他参数,如何拼接?

HarmonyOS
2024-12-23 14:00:22
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

可以通过拼接uri传递收件人,抄送人,内容等参数,关键代码参考如下:

mail({ subject= '', recipients=[], body='', ccRecipients=[], bccRecipients=[] }: mainOptions, callback: Function) {
  let mailUri: string = '';
  mailUri += recipients?.join(',') || '';
  mailUri += '?cc=' + ccRecipients?.join(',') || '';
  mailUri += '&bcc=' + bccRecipients?.join(',') || '';
  mailUri += '&subject=' + subject;
  mailUri += '&body=' + body;
  Logger.info('mailUri ', mailUri, 'ccRecipients:' + ccRecipients, 'bccRecipients:' + bccRecipients);
  this.startEmailApp(mailUri, callback);
}

startEmailApp = (mailUri, callback) => {
  let want: Want = {
    bundleName: 'com.huawei.hmos.email',
    abilityName: 'EntryAbility',
    moduleName: 'entry',
    uri: 'mailto:' + mailUri,
    action: 'ohos.want.action.viewData',
  };
  Logger.info('want ', JSON.stringify(want));
  try {
    this.ctx.uiAbilityContext.startAbility(want)
      .then(() => {
        Logger.info('startAbility success');
      })
      .catch((err: BusinessError) => {
        Logger.info('startAbility error.', err.message);
        callback(err.message);
      })
  } catch (e) {
    callback(e);
    Logger.info('error:', e);
  }
}
分享
微博
QQ
微信
回复
2024-12-23 16:33:17
相关问题
HarmonyOS webview打开地址的问题
1098浏览 • 1回复 待解决
如何识别文本中的邮箱并高亮显示?
1287浏览 • 1回复 待解决
webview打开地址时报错 怎么回事啊?
7278浏览 • 1回复 待解决
HarmonyOS 跳转邮件App,怎么实现?
1167浏览 • 1回复 待解决
HarmonyOS 打开系统的位置开关
1642浏览 • 1回复 待解决
arkTS中判断传入的邮箱格式是否正确
1791浏览 • 1回复 待解决
HarmonyOS 能指定打开系统应用吗?
854浏览 • 1回复 待解决
mac系统,ohpm下载内容的缓存地址
2144浏览 • 1回复 待解决
HarmonyOS 如何调用手机发送邮件服务?
2133浏览 • 1回复 待解决