在鸿蒙应用开发中,需要一个跳转系统邮件,发送邮件的demo

在鸿蒙应用开发中,需要一个跳转系统邮件,发送邮件的demo


HarmonyOS Next
HarmonyOS
7天前
浏览
2
收藏 2
回答 3
已解决
回答 3
按赞同
/
按时间
乂心IsOneHeart
1

参考代码:

// Copyright (c) 2024-2025 IsOneHeart SourHarbor - PixelArtisan
export function startEmailAbility(context: common.UIAbilityContext, uri?: string) {
  context.startAbility({
    action: 'ohos.want.action.sendToData',
    uri: uri ? uri : 'mailto:example@example.com?subject=【像素匠反馈建议】'
  })
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.


分享
微博
QQ
微信
回复
7天前
三掌柜

其实,电子邮件可通过ability拉起,通过拼接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; 
  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', 
  }; 
 
  try { 
    this.ctx.uiAbilityContext.startAbility(want) 
      .then(() => { 
        Logger.info(TAG, 'startAbility success'); 
      }) 
      .catch((err: BusinessError) => { 
        callback(err.message); 
      }) 
  } catch (e) { 
    callback(e); 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
分享
微博
QQ
微信
回复
6天前
哈韩浪子

小伙子 授人以渔。你首先要知道调用邮箱的原理是什么。在实际开发中 可以采用ability这的方式开启邮件的应用 ,这里面要注意三点第一个就是拼接URI参数:构造包含收件人、主题、正文等信息的URI字符串,注意格式为​​mailto:收件人地址?subject=邮件主题&body=邮件正文​​第二个是创建Want对象:指定邮件应用的包名和Ability名称,设置URI和动作(参考API​​ohos.want.action.viewData​​)。第三个就是要启动Ability:通过调用​​UIAbilityContext.startAbility​​方法启动邮件应用的指定Ability,传递拼接好的URI参数。


   这个原理懂了之后,再去看demo就很好理解了。

分享
微博
QQ
微信
回复
6天前
相关问题
HarmonyOS 应用跳转系统相册
550浏览 • 1回复 待解决
HarmonyOS 跳转邮件App,怎么实现?
672浏览 • 1回复 待解决
需要一个NFC读取demo
1313浏览 • 1回复 待解决
HarmonyOS 需要一个筛选页面的demo
892浏览 • 1回复 待解决
HarmonyOS 跳转系统地图进行导航
784浏览 • 1回复 待解决
如何跳转系统权限设置页面
1500浏览 • 1回复 待解决
如何开发一个纯后台应用
2698浏览 • 1回复 待解决