无法将“ force:navigateToURL”替换为lightning:navigation或force:navigateToSObject

时间:2019-01-10 02:12:33

标签: salesforce salesforce-lightning

我们目前正在尝试将现有的工作代码替换为另一个“面向未来的代码”。

基本上,我们有一个独立的应用程序,只要用户单击闪电组件中的按钮,就会调用该应用程序。

一个新窗口打开,独立应用程序加载正常。

这是打开应用程序的代码的快照:

var urlEvent = $A.get("e.force:navigateToURL");
urlEvent.setParams({
   "url": '/c/myApp.app?recId=' + component.get('v.recordId') + 
          '&Rows=' + component.get('v.Rows') + '&Bytes=' + 
           component.get('v.Bytes')
});
urlEvent.fire();

该应用程序(称为myApp)被调用,我们已经将几个变量传递给它。

我们尝试使用新的lightning:navigation组件,但没有用。

目标是尝试改为构建pageReference或直接解析/创建URL。如果将来Salesforce更改URL格式,可以避免导航中断,这对我们有帮助。

我们遇到的第一个问题是,可用的页面引用类型(必需)是:

•闪电组件(必须实现闪电:isUrlAddressable) •知识文章 •命名页面 •导航项目页面 •对象页 •记录页 •记录关系页面

没有提及应用程序。

文档指出: “这些导航资源仅在Lightning Experience和Salesforce移动应用程序中受支持。其他容器(例如Visualforce的Lightning组件,Lightning Out或社区)不支持这些导航资源。即使您在Lightning Experience中访问这些容器,也是如此。或Salesforce移动应用。”

由于该应用程序是自己运行的(不在Lightning Experience或Salesforce1中),我是否正确地说我们的当前解决方案是唯一可行的方法?

如果没有,那还有什么其他方法,这样我们就不必担心Salesforce方面将来的URL更改了吗?

1 个答案:

答案 0 :(得分:0)

一种替代方法是使用从lwc到aura组件的事件通信,保持aura组件作为lwc的父组件触发具有所需url和查询参数的事件 并使用document.addEventListener和fire forcenavigatetoURL或sObject在先兆中监听事件。将来,如果他们支持,我们可以在一个地方进行更改。

相关问题