Visualforce和闪电体验

Visualforce和闪电体验 – 开发Visualforce页面以获得闪电体验

学习目标

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

  • 完成Lightning Experience开发环境的设置。
  • 描述在开发过程中查看Lightning Experience中Visualforce页面的两种不同方式。
  • 描述在开发过程中预览Visualforce页面和正式测试该页面的区别。
  • 创建一个测试矩阵,描述在对Visualforce页面进行正式测试时需要包含和测试的不同因素。

为闪电体验开发Visualforce页面

为Lightning Experience创建Visualforce页面和应用程序的开发过程在某些方面与Salesforce Classic的开发有很大的不同。在其他人中,你会发现它是一样的。主要区别在于您在开发过程中如何查看和测试您的页面。
在本单元中,我们将介绍设置开发环境的细节,然后介绍在构建过程中测试页面的“正确”方式的细节。好消息是,您需要使用Lightning Experience进行开发的过程与用于开发Salesforce移动页面的过程相同。

设置您的编辑器

您要设置的第一件事就是您将用于编写代码的编辑工具。无论您是为Lightning Experience,Salesforce Classic还是Salesforce应用程序创建页面,以及是否使用Developer Console,Force.com IDE或旧的安装编辑器,此过程都保持不变。
如果您已经有了首选的Visualforce编辑工具,则无需在此处执行任何操作。编写和保存您的Visualforce标记仍然完全相同。开发者控制台拥有自己的用户界面,在Lightning Experience和Salesforce Classic之间不会改变。安装程序中的编辑器也保持不变,在所有用户界面上下文中保留Salesforce Classic用户界面。当然,如果您使用的是本地工具(如Force.com IDE或许多第三方工具中的一种),则这些工具都有自己的用户界面。

一个例外是Visualforce开发模式页脚中的编辑器。如果您已经在用户设置中启用了开发模式,并且正在使用Salesforce Classic,那么使用开发模式页脚查看和编辑Visualforce页面的方式与您所期望的相同。如果您切换到Lightning Experience,然后使用传统的https://yourInstance.salesforce.com/apex/PageName URL模式访问页面,则可能会惊讶于在Salesforce Classic中找回自己。

这是预期的,当我们查看和测试您的Visualforce页面时,我们会进一步讨论它。现在,请了解Visualforce的开发模式仅适用于Salesforce Classic。

在开发过程中查看Visualforce页面

在开发Visualforce页面的同时查看是一个常见任务。虽然它不是正式意义上的“测试”,但是您当然希望能够与您所建立的功能进行交互,以确保正确的行为正在取得进展。这通常通过使用https://yourInstance.salesforce.com/apex/PageName URL模式访问页面来完成。虽然这仍然适用于审阅Salesforce Classic中的页面,但它不适用于检查Lightning Experience中的行为。
无论您的用户界面设置如何,您使用直接URL访问查看的页面都始终显示在Salesforce Classic中,也就是说,“经典”Visualforce容器。如果您创建具有Lightning Experience特定行为的Visualforce页面,则仅使用通常的直接URL访问权限就无法查看该行为。

超越基础

幕后造成这种情况的是什么?这很简单,真的。为了在Lightning Experience中查看您的页面,您需要访问Lightning Experience容器应用程序。这意味着访问/one/one.app。如果您正在访问,则无法访问/ apex / PageName。他们只是两个不重复的网址。

那么开发人员要做什么?您需要从Lightning Experience应用程序本身查看您的页面,以便它在Lightning Experience容器内运行。这意味着您需要导航到Lightning Experience中的页面,并且有多种方法可以做到这一点。

获取特定Visualforce页面的最简单方法是为其创建一个选项卡,然后通过应用程序启动器中的所有项目部分导航到该选项卡。一个更长远的方法是创建一个“In Development”应用程序,并在您处理它们时添加Visualforce标签,并在它们转入生产时移动或移除它们。由于这样做的控制已经移动了一下,下面是简短的说明。

  1. 从设置中,在快速查找框中输入应用程序,然后选择应用程序管理器。
    您应该看到Lightning Experience App Manager设置页面。
  2. 点击New Lightning App,然后在开发中为您的页面创建一个自定义的应用程序。
    考虑限制您的应用程序仅限于系统管理员,或者您为组织中的开发人员创建的配置文件。Assign app to limited profiles to control access

    您不需要用户在用户界面中将其添加到永久位置之前查看您的页面。

  3. 从设置中,在快速查找框中输入应用程序菜单,然后选择应用程序菜单。

    你应该看到应用程序菜单设置页面。

  4. 确保您的In Development应用程序在应用程序启动器中设置为可见。

    当你在这个时候,你可能想重新排列项目,甚至隐藏你不使用的应用程序。

    App Launcher app visiblity and order
  5. 从设置中,在快速查找框中输入标签,然后选择标签。

    您应该看到自定义选项卡设置页面。

  6. 在“Visualforce选项卡”部分中单击“新建”,然后为当前正在开发的页面创建一个自定义选项卡。

    使该选项卡仅可见于您的开发用户配置文件,并将该选项卡仅添加到您的In Development应用程序中。

    Make in development tabs only visible to developers
    Add tab to In Development app
  7. 对要添加到In Development应用程序中的每个页面重复上一步骤。为了将来添加新的页面,这是唯一需要的步骤。

尽管如此,在您处理页面的过程中,您可以轻松查看自己的页面,但与仅将网页名称输入到URL中并不相同。对于在Lightning Experience中测试页面的开销相似的方式,您可以在JavaScript控制台中键入以下内容:

$A.get("e.force:navigateToURL").setParams(
    {"url": "/apex/pageName"}).fire();
这个JavaScript触发了Lightning Experience的navigateToURL事件,相当于输入了经典的/ apex / PageName的URL – 你甚至可以在代码中看到这个URL模式。

注意

您目前需要使用Lightning Experience才能使用此技术。如果您使用的是Salesforce Classic,则JavaScript代码将失败。

为了使用起来更方便一些,请将以下小书签添加到浏览器的菜单或工具栏中。 (为了便于阅读,我们封装了这些代码。)

javascript:(function(){ 
    var pageName = prompt('Visualforce page name:'); 
    $A.get("e.force:navigateToURL").setParams(
        {"url": "/apex/" + pageName}).fire();})();
这个小书签提示您输入页面名称,然后触发事件直接导航到它。有用!
导航到正在处理的页面后,只需使用浏览器的重新加载命令即可在进行更改时刷新页面。

在多个环境中查看Visualforce页面

如果您正在创建将在Lightning Experience,Salesforce Classic和Salesforce应用程序中使用的页面,那么您需要在所有环境中查看这些页面。为此,您需要在多个浏览器和多个设备上打开该页面。
将在不同的Salesforce用户界面上下文中使用的Visualforce页面和外观因素在开发过程中很难进行审阅。您可以使用配置文件菜单中的环境选择器在Salesforce Classic和Lightning Experience之间来回切换,但这种情况会很快变老。您也可以使用浏览器的用户代理设置来模拟Salesforce移动环境,但这更麻烦。

相反,您将要使用多个浏览器甚至多个设备来查看您的页面。而且您还希望至少可以访问另外一个测试用户。以下是如何设置开发环境的示例。

主要发展环境
此环境是您在安装程序中对组织进行更改的位置,例如添加自定义对象和字段,也可能是编写实际代码的位置(如果使用开发人员控制台)。

  • 浏览器: Chrome
  • 用户:您的开发人员用户
  • 用户界面设置:Salesforce Classic
在此环境中查看您的页面在Salesforce Classic中的设计和行为。
闪电体验评论环境
这个环境是你在Lightning Experience中检查你的页面设计和行为的地方。

  • 浏览器:Safari或Firefox
  • 用户:您的测试用户
  • 用户界面设置:闪电体验
Salesforce移动审查环境
此环境用于检查您的页面在Salesforce应用程序中的设计和行为。

  • 设备:iOS或Android手机或平板电脑
  • 浏览器:Salesforce应用程序
  • 用户:您的测试用户
  • 用户界面设置:闪电体验

注意

这只是一个示例设置,您可以使用Salesforce Classic和Lightning Experience中的任何现代浏览器或移动设备。关键是要使用两种不同的浏览器,以便您可以同时访问Salesforce Classic和Lightning Experience,并使用实际设备来测试Salesforce应用程序。

这可能听起来相当复杂,初始设置起来有点麻烦,特别是如果你正在寻找编码的话。但请记住两件事。首先,一旦你成立,就完成了。其次,这个工作区不仅为您提供了一个很好的开发环境,还为您提供了正式测试页面所需的环境。因为你不会梦想在没有经过正式测试的情况下将网页投入生产,对吗?

测试您的Visualforce页面

这只是一个示例设置,您可以使用Salesforce Classic和Lightning Experience中的任何现代浏览器或移动设备。关键是要使用两种不同的浏览器,以便您可以同时访问Salesforce Classic和Lightning Experience,并使用实际设备来测试Salesforce应用程序。

这可能听起来相当复杂,初始设置起来有点麻烦,特别是如果你正在寻找编码的话。但请记住两件事。首先,一旦你成立,就完成了。其次,这个工作区不仅为您提供了一个很好的开发环境,还为您提供了正式测试页面所需的环境。因为你不会梦想在没有经过正式测试的情况下将网页投入生产,对吗?

测试您的Visualforce页面
测试您的Visualforce页面,然后将其部署到生产环境中是一项重要的开发任务。当您的组织采用Lightning Experience时,测试页面的过程变得更加复杂。
我们刚刚讨论了在开发页面时需要设置的环境,以进行快速,非正式的测试。这些环境的需求也适用于正式测试您的网页和应用程序。让我们来谈谈为什么你需要这些不同的环境,而不是重复它们。

在Lightning Experience和Salesforce Classic中测试页面的需求相当明显,但为什么不能在同一个浏览器中使用相同的用户来测试?事实上,你可以,你应该。您的用户可以在不同的用户界面之间来回切换,并且您应该确认您的页面在这些用户界面中工作。

但是,您也希望以更加独立和系统的方式来测试页面,以确保您正在测试的是页面的基本功能,尽可能与其他代码的效果分离,不管代码是否属于您,我们的,浏览器的,或者设备的。

这突出了另一个测试问题。在过去,我们建议您在台式机或笔记本电脑上进行Salesforce移动开发以及导航到Salesforce应用使用的/one/one.app URL是合理的。此方法不再有效,因为/one/one.app由Salesforce应用程序和Lightning Experience共享,具体取决于连接到它的设备。虽然你可以通过更改浏览器的用户代理来欺骗/one/one.app,但这是一个坏主意,反模式。原因是,即使是来自同一供应商的台式机和移动浏览器的行为也有所不同,有时甚至会有所不同。除非您正在测试每个设备和您计划支持的每个浏览器,否则无法进行严格的正式测试。

如果你正在开发一个单独的页面,或者一个基本的应用程序相同的设备,你的“矩阵”的不同因素可能很简单。但对于更有雄心的项目,如果您正在开发需要在各种可能性范围内支持的功能,那么您的测试计划应该考虑跨越测试的需求:

  • 每个不同的支持设备。
  • 每个不同的支持的操作系统
  • 每种不同的支持浏览器 – 包括嵌入自己的Salesforce应用程序。
  • 每个不同的受支持的用户界面上下文(Lightning Experience,Salesforce Classic和Salesforce应用程序)。

幸运的是,为了您的理智,其中一些因素一起崩溃,减少了组合爆炸。例如,大多数的苹果移动设备可以指望更新到最新版本的iOS。这意味着设备,操作系统和浏览器实际上只是一个组合。因此,您的测试计划可能会选择仅测试一个iPhone和一个iPad,并更新到最新的iOS和Salesforce应用程序。

关于测试的最后一句话。我们强烈建议您的开发和测试环境相似的另一个原因是,您可以在开发过程的早期开始测试和全面测试。我们发现,直到项目后期才开始对辅助设备进行测试。当发生这种情况时,发现问题时不可避免地会受到挫折。

提前测试,经常测试,测试一切。

你可能也会喜欢...