Lightning Experience Development-在Lightning Experience中使用Visualforce

学习目标

  • 列出至少五个Visualforce功能,它们在Lightning Experience中保持不变。
  • 在Visualforce代码中描述至少两个需要检查的Visualforce功能。
  • 列出至少两个在Lightning Experience中不起作用的Visualforce功能。
  • 描述Lightning Experience 如何影响现有Visualforce页面的视觉设计

Visualforce 和 Lightning Experience

Lightning Experience是一个全新的世界,我们希望你觉得它令人兴奋。在Lightning Experience用户界面的背后是一种交付Salesforce应用程序的新方式,它给Visualforce应用程序的运行方式带来了重大变化。在大多数情况下,你的Visualforce应用程序应该“正常工作”,但在你跳转到Lightning Experience之前,有些事情你应该知道。

关于Lightning Experience是如何构建的以及它如何运行Visualforce应用程序的技术细节非常酷,对于实际的开发工作非常重要。当您准备好了解这些细节时,Visualforce&Lightning Experience模块将为您指明方向。但在这里,我们将停留在一个较高的层次上,并将事情分为哪些可行,哪些不可行,哪些需要更新,以及其他将帮助您规划Lightning Experience迁移开发工作的问题。

什么有效

关于Visualforce 在Lightning Experience中起作用的部分的清单相当长。它几乎和整个Visualforce功能列表一样长。所以,在我们开始讨论清单上没有的事情之前,让我们先从积极的角度来考虑,并检查一下你可以依赖的许多事情。
首先,Visualforce 如何工作的基本机制保持不变。无论您的页面使用标准控制器、自定义控制器、JavaScript远程处理还是远程对象,您与Salesforce的连接都是一样的。

Note:如果您广泛使用JavaScript,或者使用其他API访问Salesforce,您可能需要做一些工作。我们会的。

其次,Visualforce标记保持不变。有一些标签和属性在Lightning Experience中表现不同,我们建议不要使用或根本不起作用。但除此之外,为Visualforce页面和组件编写代码的方式是不变的。

第三,您可以使用Visualforce定制组织的大多数方法在Lightning Experience中工作得很好,尽管您可以毫无疑问地想象,在全新的用户界面下,这些定制已经转移到了不同的地方。

让我们深入了解一下这些定制的细节。在Lightning Experience中,以下所有工作都很好,只需移动到用户界面中的一个新位置。

  • 使用Visualforce页面创建自定义选项卡和应用程序。
  • 创建指向Visualforce页面的自定义按钮和链接。
  • 创建使用Visualforce页面打开的自定义操作。
  • 使用Visualforce页面覆盖标准操作(有一个例外,我们将在后面讨论)。
  • 创建使用Visualforce页面的流。
  • 包装Visualforce页面和组件。

用户界面的变化从微小到显著不等。当用户在Lightning Experience和Salesforce Classic之间切换时,使用Visualforce定制的功能将自动移动。你可能需要给你的用户一个初步的定位,但在那之后,他们会很高兴。
还有其他功能,例如Visualforce电子邮件模板,它们在幕后使用Visualforce代码。它们不会直接出现在用户界面中,因此它们保持不变。
有关各种功能移动到何处的屏幕截图,请参阅Visualforce&Lightning Experience模块中的在Lightning Experience单元中使用Visualforce。

什么有效,但需要更新和测试

启用Lightning Experience时运行Visualforce页面的环境与标准Visualforce请求不同。技术细节变得相当复杂,但简单的版本是,在Lightning Experience中,Visualforce页面嵌入在显示在Lightning Experience应用程序中的HTML iframe中。
这一变化带来了许多后果,主要与JavaScript和访问外部应用程序有关。在认证Visualforce页面用于Lightning Experience之前,您需要检查代码并验证一些内容。我们正在为Visualforce&Lightning Experience模块保存细节。现在,让我们从一个较高的层次进行检查,这样您就可以开始确定您的审查范围。
对于初学者,如果您有使用JavaScript的页面或应用程序,您将需要检查代码的行为。特别是,您的代码不能直接访问窗口全局对象。如果您真的需要,您仍然可以通过对代码进行微小的更改来实现这一点,但是使用Lightning Experience应用程序API可能有更好的方法来完成这些任务。特别是,直接设置window.location的代码应该进行修改,以与Lightning Experience导航堆栈集成。

类似地,假设它可以访问整个环境的代码也会大吃一惊。它仍然可以访问文档的Visualforce部分,但不能访问完整的Lightning Experience应用程序。这对于许多应用来说都是不错的,但对于那些想完全掌控全局的应用来说,你还有一些工作要做。

如果您的页面本身使用iframe,无论是apex:iframe还是静态HTML,嵌入到另一个iframe中可能会导致一些问题。在很多情况下,“海龟一路下来”是可以的。确保你在这里做额外的测试。

如果您的页面嵌入了Canvas应用程序,特别是如果您使用Canvas API将该应用程序集成到Salesforce中,请分配时间进行彻底测试。Canvas应用程序使用iframe,虽然正确的行为代码应该可以正常工作,但我们都知道完美代码在现实世界中是多么常见。

使用远程对象和JavaScript远程处理的页面不需要更新身份验证代码。但是,如果您的页面使用其他Salesforce API,您可能需要调整身份验证代码以发出正确的跨域请求,或者调整以适应新环境。

所有这些听起来都很模糊,很难做到,但事实上,您可能需要更改的代码量很小。同样,Visualforce&Lightning Experience模块中提供了开发人员的详细信息。

什么不起作用

因此,可以说,我们来到了谈话中不那么愉快的部分。幸运的是,在Visualforce for Lightning Experience中不起作用的内容列表很短,我们可以很快解决它。

也许最重要的变化是,在一些可能难以解决的问题上,与Salesforce Classic相比,标准动作的Visualforce覆盖在Lightning Experience中略有不同。在Lightning Lightning中,无法访问对象列表操作的任何覆盖。

具体而言,对于Salesforce Classic中的大多数标准和所有自定义对象,您可以覆盖六个标准操作:

  • 对象选项卡 Object tab
  • 对象列表 Object list
  • 记录视图 Record view
  • 记录编辑 Record edit
  • 记录创建 Record create
  • 记录删除 Record delete

在Lightning Experience中,前两个动作被合并到一个页面中,对象主页。“对象主页”类似于“对象列表”,以及“对象”选项卡的某些元素,如“最近使用的项目”。其他元素(如报表或工具)已移动到用户界面的其他部分。
无论组织中的用户界面设置如何,都可以在设置中覆盖对象选项卡和对象列表。如预期的那样,覆盖对象选项卡操作将覆盖Lightning Experience中的对象主页。

但是,在Lightning Experience中,无法在用户界面中访问对象列表操作,因此无法启动它。如果您的组织已覆盖任何对象的对象列表操作,则当用户使用Lightning Experience时,该功能将不可用。如果覆盖中有必要的功能,您需要找到另一种方法使其可用。

在较小的范围内,apex:page的showHeader和边栏属性在Lightning Experience中显示时对Visualforce页面没有影响。标准的Salesforce Classic标题和侧边栏始终被抑制,并且没有方法抑制Lightning Experience标题和侧边栏。

Lightning Experience不支持Salesforce Classic中提供的许多相关列表。apex:relatedList组件不能绕过这个限制。不过,尝试得不错!

说到真正的小问题,将Visualforce页面呈现为PDF与Salesforce Classic中完全一样,没有任何Lightning Experience视觉设计。这可能是您想要的,但是如果您想要将页面呈现到包含Lightning Experience设计的PDF中,这在今天是不可能的。

那个外观和感觉的东西

关于Lightning Experience,你首先注意到的是华丽的全新视觉设计。如果你已经开发Visualforce页面一段时间了,你的下一个想法可能是,我的Visualforce页面在Lightning Experience中会是什么样子。简单的回答是…好吧,让我们坐下来讨论这部分,好吗?
简单的回答是,除了抑制Salesforce Classic标题和侧栏,以及被Lightning Experience用户界面框住之外,Visualforce页面在Lightning Experience中显示不变。

具体来说,当页面在Lightning Experience中显示时,内置Visualforce组件呈现的HTML不会改变,默认情况下,这些组件使用的Salesforce经典样式表由页面加载。其效果是,使用apex:inputField、apex:outputField、apex:pageBlock组件以及其他与Salesforce经典视觉设计相匹配的粗粒度和细粒度组件的页面仍然与该视觉设计相匹配。在Lightning Experience中,你得到了一小部分销售人员经典。

但是,如果您使用了相对未设置样式的Visualforce组件,或者使用了自己的组件和标记,并开发了自己的样式表而不是使用默认的Salesforce样式,那么您的页面也将保持不变,保留您努力开发的样式。

换句话说,在Visualforce for Lightning Experience中,我们倾向于现有页面的视觉设计的稳定性,而不是试图根据Lightning Experience动态调整页面。

也就是说,如果你和我们一样对新的视觉设计感到兴奋,那么你可以根据你想要投入的工作量,在较小或较大的程度上采用这种风格。我们不会在这里讨论,但是有一个完整的单元,理解重要的视觉设计考虑,它展示了各种可能性和实现这些可能性的技术。

参考:salesforce原文地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值