Canvas

画布开发(7)Publisher中的Canvas应用程序

学习目标

完成本单元后,您将能够了解到:

  • 设置Canvas应用程序位置并创建操作
  • 手动创建操作
  • Canvas SDK Publisher事件
  • 发布者上下文注意事项
  • Publisher Canvas App Access注意事项

Canvas使您可以将画布应用程序公开为快速操作。 发布者允许用户访问组织中最常见的操作。 您可以将发布者扩展为包含画布应用程序,以便用户可以利用画布应用程序的常见自定义操作。 然后,这些操作可以与Feed集成,并创建特定于已执行操作的Feed帖子。

开发人员可以使用发布商中的画布应用来:

  • 将Web应用程序中的内容添加到Chatter发布者中。
  • 创建一个公开画布应用程序的自定义操作。
  • 将画布应用程序直接集成到发布者生命周期中:从画布应用程序发布到Chatter摘要中,使用“共享”按钮功能,并指定发布消息的位置。

例如,您可能拥有一个用户用来记录工作时间的画布应用程序。 您可以创建一个快速操作,允许用户在发布者中打开该画布应用程序,以便他们可以在发布者中快速提交时间记录。

用户仍然可以以标准方式访问画布应用程序以获得完整功能; 但是,发布者中的画布应用程序可以快速访问应用程序的最常见功能。 用户可以选择快速操作并创建Chatter订阅源项,该项可以是文本帖子,链接帖子,甚至是画布帖子。

设置Canvas应用程序位置并创建操作

要将画布应用程序添加到发布者或操作栏,您必须设置位置并在创建画布应用程序时创建操作。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“应用”,然后选择“应用”。
  2. 在Connected Apps相关列表中,单击New。填写画布应用的基本字段。请参阅创建画布应用程序。
  3. 在Canvas App设置中,选择Canvas,然后在Locations字段中选择Publisher。您必须为画布应用选择此位置,以使其显示在完整Salesforce站点中的发布者和Salesforce应用程序的操作栏中。
  4. 选择“自动创建操作”字段。这为画布应用程序创建了一个快速操作。
  5. 隐藏发布商标题,其中包含“您在做什么?”文本,选择隐藏Publisher标题。这会在完整的Salesforce站点和Salesforce应用程序中隐藏标题。
  6. 要在完整Salesforce站点和Salesforce应用程序中隐藏用户的发布者“共享”按钮,请选择“隐藏发布者共享按钮”。仅当选择了“隐藏发布者标题”时,才会启用此复选框。

要使画布应用程序显示为操作,您必须将操作添加到全局发布者布局。请参阅Salesforce帮助中的“自定义全局发布者布局”。

手动创建操作

如果在创建画布应用程序时未选择“自动创建操作”字段,则需要手动创建操作。

  1. 从“设置”中,在“快速查找”框中输入“Actions”,然后选择“Global Actions”
  2. 单击“New Action”。
  3. 在“操作类型”字段中,选择“自定义画布”。
  4. 在“画布应用程序”字段中,选择要作为操作显示的画布应用程序。只有具有Publisher位置的画布应用才会显示在此字段中。
  5. 在“高度”字段中,输入画布应用程序的高度(以像素为单位)。
    这是画布应用在出版商中出现时的初始高度。您可以使用Canvas SDK resize()方法将高度更改为最大500像素。
  6. 在“标签”字段中,输入一个值。
    此值在用户界面中显示为快速操作标题。
  7. 在“名称”字段中,输入不带空格的唯一值。
  8. 或者,在“图标”字段中,您可以通过单击“ Change Icon”上载图标。您必须先将图标作为静态资源上传,然后才能在此处进行更改。
  9. 单击“Save”。

要使画布应用程序显示为快速操作,您必须将操作添加到全局布局。请参阅Salesforce帮助中的“自定义全局发布者布局”。

Canvas SDK Publisher事件

在发布者中公开画布应用程序时,可以使用定义良好的事件来启用画布应用程序和发布者之间的通信。

您的画布应用程序可以订阅和发布这些事件,以便与发布者框架更紧密地集成。例如,您可以激活标准Chatter共享按钮以发布Chatter摘要项。您还可以访问用户在“您在做什么”中输入的帖子文本?发布商中的字段,并将其与您应用中的内容相结合。

FieldDescription
publisher.clearPanelState在停用或隐藏画布应用程序时由发布者触发。当用户在发布者中选择其他应用程序或单击“共享”按钮后,可能会发生这种情况。 Visualforce页面也可以侦听此事件。
publisher.failure遇到错误情况时由发布者触发,例如提交无效数据时。例如:
•Feed中的文字太长
•您尝试发布到Feed的画布应用程序不存在
•画布应用程序URL无效
画布应用程序应该侦听此事件并提醒用户发生了错误并且未创建帖子。
publisher.getPayload单击“共享”按钮时由发布者触发。有效负载包含诸如输入到您正在使用的内容中的文本等信息。字段以及与之共享订阅源项的人员。
publisher.setupPanel最初加载Chatter摘要页时由发布者触发。
publisher.setPayload由画布应用程序触发,以向发布者表明发送给发布者的内容应该在订阅源项目中共享。此事件是对publisher.getPayload的响应,包含有关您尝试创建的Feed项的信息。您可以创建三种Feed项类型:
•TextPost
•LinkPost
•CanvasPost
publisher.setValidForSubmit由画布应用程序触发,向发布者表明画布应用程序已准备好提交有效负载。触发此事件后,“共享”按钮将变为活动状态。
此代码段启用“共享”按钮:
$$.client.publish(sr.client,
{name : ‘publisher.setValidForSubmit’, payload : true});
publisher.showPanel当用户在发布者中选择画布应用时,由发布者触发。此事件表示正在显示画布应用程序。 Visualforce页面也可以侦听此事件。
publisher.success单击“共享”按钮并成功提交数据后,由发布者触发。

发布者事件的顺序

以下是从画布应用程序角度看发布者事件的顺序:

  1. 画布应用程序侦听pu​​blisher.setupPanel。
  2. 画布应用程序侦听pu​​blisher.showPanel。
  3. 用户与画布应用程序交互,例如,单击按钮或输入一些文本。 canvas应用程序执行所需的任何验证,然后触发publisher.setValidForSubmit。结果,发布者然后启用“共享”按钮。
  4. 画布应用程序侦听pu​​blisher.getPayload。
  5. canvas应用程序触发publisher.setPayload。
  6. 画布应用程序侦听pu​​blisher.success。
  7. canvas应用程序侦听pu​​blisher.failure。
  8. 画布应用程序侦听pu​​blisher.clearPanelState。

发布者上下文注意事项

当您在发布者中显示画布应用程序时,您从签名请求或从
getContext()调用包含特定于发布者的信息:

  • Location – 如果画布应用程序位于发布者中,则Environment.displayLocation字段包含值Publisher。
  • Size-Environment.Dimensions对象包含有关canvas应用程序大小的信息。
    1. 画布应用高度将是您在创建的快速操作中指定的高度。
    2. 如果在创建画布应用程序时选择了“自动创建操作”,则画布应用程序高度默认为200像素。
    3. 画布应用程序宽度默认为521像素,这与发布者中画布应用程序的最大宽度相同。
    4. 发布者中画布应用的最大高度为500像素。
    5. 发布者中画布应用的最大宽度为521像素。
    6. 此代码段显示发布商中画布应用的默认大小值:
      “dimensions”:{“width”:“521px”,“height”:“200px”,“maxHeight”:“500px”,“maxWidth”:“521px”}
    7. 发布商的固定宽度为521像素。例如,如果将画布应用程序的大小调整为400像素,则发布者宽度仍为521像素。
    8. 您可以使用Canvas SDK中的resize()方法将画布应用程序的值更改为maxHeight和maxWidth。

Publisher Canvas App Access注意事项

修改发布者中显示的画布应用时,请记住以下注意事项:

  • 如果画布应用程序具有与之关联的快速操作,则无法删除画布应用程序或删除Publisher位置。 您必须先删除快速操作。
  • 如果用户无法通过配置文件或权限集访问画布应用程序,并且他们在发布者中选择了应用程序,则会收到错误消息。
  • 如果画布应用程序尝试执行用户没有权限的操作,则该操作将失败,并且画布应用程序将收到错误。 例如,如果应用尝试创建商品记录但用户没有商品的创建权限,则该应用将收到错误。 然后,画布应用程序应将错误转发给用户。

你可能也会喜欢...