HarmonyOS 鸿蒙Next 5.0(API12)调用startAbilityByType拉起邮箱类应用,附件添加失败
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拉起邮箱类应用并添加附件时,如果遇到附件添加失败的问题,可能是由于以下几个原因导致的:
- 参数设置不正确:确保在调用startAbilityByType时,传入的WantParam参数中包含了正确的邮件地址、主题、正文以及附件的URI等信息。特别是附件部分,需要确保URI路径正确且应用有权限访问该路径。
- 应用权限问题:检查你的应用是否已经获得了读取和写入外部存储的权限,以及是否声明了邮件发送的能力。
- 邮件应用支持问题:不是所有的邮件应用都支持通过startAbilityByType接口添加附件。确保目标邮件应用已经正确配置了接收邮件相关参数的技能。
针对上述问题,你可以逐一排查并尝试修复。如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。