HarmonyOS 鸿蒙Next 5.0(API12)调用startAbilityByType拉起邮箱类应用,附件添加失败

发布于 1周前 作者 nodeper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 5.0(API12)调用startAbilityByType拉起邮箱类应用,附件添加失败

try{
      let documentSelectOptions = new picker.DocumentSelectOptions();
      let documentPicker = new picker.DocumentViewPicker(getContext(this));
      documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {
        console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));

        let context = getContext(this) as common.UIAbilityContext;
        let wantParam: Record<string, Object> = {
          'sceneType': 1,
          'email': [encodeURI('test@qq.com')], // 收件人邮箱地址,多值以逗号分隔,对数组内容使用encodeURI()方法进行url编码
          'subject': encodeURI('邮件主题'), // 邮件主题,对内容使用encodeURI()方法进行url编码
          'body': encodeURI('邮件正文'), // 邮件正文,对内容使用encodeURI()方法进行url编码
          'ability.params.stream': documentSelectResult, // 附件uri,多值以逗号分隔,对数组内容使用encodeURI()方法进行url编码
          'ability.want.params.uriPermissionFlag': wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION
        };
        let abilityStartCallback: common.AbilityStartCallback = {
          onError: (code: number, name: string, message: string) => {
            console.log(`onError code ${code} name: ${name} message: ${message}`);
          },
          onResult: (result)=>{
            console.log(`onResult result: ${JSON.stringify(result)}`);
          }
        }

        context.startAbilityByType("mail", wantParam, abilityStartCallback,
          (err) => {
            if (err) {
              console.error(`startAbilityByType fail, err: ${JSON.stringify(err)}`);
            } else {
              console.log(`success`);
            }
          });

      }).catch((err: BusinessError) => {
        console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
      });
    } catch (error) {
      let err: BusinessError = error as BusinessError;
      console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
    }

怀疑是邮箱应用没有对我选择文件的访问权限,有没有大佬遇到过这个问题,如何解决

2 回复
测试了下,body也没传过去,要么系统不支持,要么是bug

在HarmonyOS鸿蒙Next 5.0(API12)中,调用startAbilityByType拉起邮箱类应用并添加附件时,如果遇到附件添加失败的问题,可能是由于以下几个原因导致的:

  1. 参数设置不正确:确保在调用startAbilityByType时,传入的WantParam参数中包含了正确的邮件地址、主题、正文以及附件的URI等信息。特别是附件部分,需要确保URI路径正确且应用有权限访问该路径。
  2. 应用权限问题:检查你的应用是否已经获得了读取和写入外部存储的权限,以及是否声明了邮件发送的能力。
  3. 邮件应用支持问题:不是所有的邮件应用都支持通过startAbilityByType接口添加附件。确保目标邮件应用已经正确配置了接收邮件相关参数的技能。

针对上述问题,你可以逐一排查并尝试修复。如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部