Visualforce和闪电体验

Visualforce和闪电体验 – 了解闪电体验中应避免使用的功能

 

学习目标

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

  • 列出至少两个组件以避免在Lightning Experience中使用的页面上使用。
  • 确定三个Lightning Experience功能,您无法使用Visualforce页面或组件。

了解在闪电体验中要避免哪些特征

我们建议您避免在Lightning Experience中使用的页面上存在有限数量的Visualforce组件。此外,在Lightning Experience中使用Visualforce的一些功能时会有不同的表现。最后,Lightning Experience中有几个地方不能使用Visualforce页面或应用程序,或者它们可能无法正常工作。
闪电体验还在不断发展和壮大,安全港警报! – 我们希望随着时间的推移缩小这个名单。

闪电体验标题和导航菜单不能被抑制

在Lightning Experience中运行时,Visualforce页面始终显示标准的Lightning Experience用户界面。没有办法抑制或改变Lightning Experience标题或边栏。特别是,在“Lightning Experience”中显示时,<apex:page>的showHeader和sidebar属性对Visualforce页面没有影响。
这种行为是有意的。在Lightning Experience中显示的应用程序是Lightning Experience应用程序。如果您需要为您的应用程序提供完全自定义的界面,则需要在Salesforce Classic中运行它。

Salesforce Classic标题和边栏始终被抑制

在Lightning Experience中显示时,标准Salesforce Classic标题和侧边栏始终会被隐藏。特别是,在“Lightning Experience”中显示时,<apex:page>的showHeader和sidebar属性对Visualforce页面没有影响。
页面的行为就好像<apex:page>的showHeader和sidebar属性都设置为false。

注意

确定是否包含或取消标准Salesforce Classic样式表的<apex:page>的standardStylesheets属性不受Lightning Experience的影响。也就是说,在Lightning Experience中它默认为true,但是你可以改变它。

<apex:relatedList>和黑名单相关列表

有许多相关的列表在Lightning Experience中不被支持。这些相关的名单是“黑名单”,这意味着他们被明确阻止使用。正如您所期望的那样,这些相同的相关列表在Visualforce中使用<apex:relatedList>标记列入黑名单。
有关Lightning Experience不支持哪些相关列表的详细信息,请参阅联机帮助中的“数据访问和视图:闪电体验中的不同或不可用”。

避免 <apex:iframe>

尽管在Lightning Experience的Visualforce页面上使用<apex:iframe>并非不可能,但我们建议避免使用它。
在Lightning Experience中显示时,Visualforce页面将封装在各自的iframe中。正如在探索Visualforce应用程序容器中详细讨论的那样,这对页面的行为有很多重要的影响。向iframe堆栈添加额外的级别会增加环境的复杂性。

如果您真的了解iframe以及它们如何影响DOM和JavaScript,则可以管理这种复杂性。但是除非你已经在使用嵌套的iframe,否则很难调试问题。出于这个原因,我们建议您避免在Lightning Experience中使用的页面上使用此标签。

不,真的,不要直接设置window.location

在这一点上,我们可能听起来像一个破碎的记录,但这很重要。如果你的页面的JavaScript代码直接设置了window.location变量,当页面显示在Lightning Experience中时,这个功能将不起作用。您必须修改此代码才能使页面在Lightning Experience中运行。
有关详情,请参阅管理导航单元。

sforce.one不是Salesforce Mobile-Only

sforce.one JavaScript实用程序对象可用于Salesforce应用程序和Lightning Experience中的Visualforce页面。如果您一直在使用sforce.one对象作为判断您的页面是否在移动或桌面环境中运行的方式,则需要更新代码。
使用其中一种记录的方法来区分Salesforce Classic,Salesforce应用程序和Lightning Experience环境。 Visualforce,Apex和JavaScript中提供了支持的技术。

有关完整的详细信息,请参阅在Classic和Lightning Experience之间共享Visualforce页面单元。

动作重写的更改

对于可能难以解决的事情,Visualforce覆盖标准操作的最显着的变化可能与Lightning Experience相比略有不同。 Lightning Experience中将无法访问对象列表操作的任何覆盖。
具体而言,您可以在Salesforce Classic中为对象覆盖六个标准操作:
  • Object tab
  • Object list
  • Record view
  • Record edit
  • Record create
  • Record delete

在闪电体验中,前两个动作合并为一个页面,将对象归入主页。对象首页与对象列表类似,添加了对象选项卡的一些元素,例如最近的项目。其他的,如报告或工具,已经转移到用户界面的其他部分。
无论组织中的用户界面设置如何,“对象”选项卡和对象列表都可在“设置”中被覆盖。按照预期,覆盖对象选项卡操作将覆盖Lightning Experience中的对象主页。

但是,在Lightning Experience中,对象列表操作在用户界面中无法访问,因此无法将其解除。如果您的组织已经重写了任何对象的对象列表操作,那么当用户使用Lightning Experience时,该功能将不可用。如果在重写中有必要的功能,则需要找到其他方法使其可用。

此表列出了您可以在安装程序中替代对象的标准操作,以及三种不同用户体验中覆盖的操作。

在设置中覆盖 Salesforce Classic 闪电的经验 Salesforce应用程序
选项卡 对象选项卡 对象主页 搜索
列表 对象列表 n/a 对象主页
视图 记录视图 记录主页 记录主页
编辑 记录编辑 记录编辑 记录编辑
创建 纪录创建 纪录创建 纪录创建
删除 记录删除 记录删除 记录删除

注意

“n/a”并不意味着您不能访问标准行为,也并不意味着您不能覆盖标准行为。 这意味着你不能访问覆盖。 这是覆盖的功能,不可用。

你可能也会喜欢...