MessageComposeCommandSurface在1.1版本失效,如何同时实现邮件加载项三项需求
解决方案
无需开发两款独立加载项,你遇到的问题是Manifest配置错误导致的,调整以下3处配置即可同时满足全部3项需求:
1. 补充撰写场景的激活规则
你当前的激活规则仅匹配了读信场景,没有覆盖撰写/回复邮件的场景,导致加载项在撰写窗口不会被激活。将Rule节点修改为如下内容:
<Rule xsi:type="RuleCollection" Mode="Or"> <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" /> <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" /> </Rule>
FormType="Edit"即对应邮件撰写、回复、转发等编辑类场景。
2. 合并Host节点配置
你在VersionOverrides V1.1节点下重复声明了两个MailHost节点,重复声明会导致后定义的读信配置覆盖先定义的写信配置,这是你撰写场景失效的核心原因。将两个Host节点合并为一个,把读信、写信的扩展点放在同一个DesktopFormFactor下:
<Host xsi:type="MailHost"> <DesktopFormFactor> <FunctionFile resid="Commands.Url" /> <!-- 原有的MessageComposeCommandSurface配置原样保留 --> <ExtensionPoint xsi:type="MessageComposeCommandSurface"> <!-- 此处保留你原有撰写场景的所有配置 --> </ExtensionPoint> <!-- 原有的MessageReadCommandSurface配置调整如下 --> <ExtensionPoint xsi:type="MessageReadCommandSurface"> <!-- 新增这一行开启读信场景固定功能 --> <SupportsPinning>true</SupportsPinning> <!-- 此处保留你原有读信场景的所有配置 --> </ExtensionPoint> </DesktopFormFactor> </Host>
3. 修正控件ID重复问题
你当前配置中读信和写信场景的按钮ID完全重复,会导致部分按钮渲染异常,将读信场景的按钮ID改为全局唯一即可,比如:
- 读信场景第一个按钮ID改为
msgReadInsertGist - 读信场景第二个按钮ID改为
msgReadInsertDefaultGist
验证方法
修改完成后重新旁加载加载项即可验证:
- 读信窗口加载项正常显示,且右上角出现固定按钮
- 写信窗口加载项正常显示,点击可正常唤起任务窗格
- 所有按钮点击功能正常
内容的提问来源于stack exchange,提问作者Martin Kirk
相关产品推荐
相关产品推荐

