Невозможно заменить «force: navigateToURL» на молнию: навигация или force: navigateToSObject - PullRequest
0 голосов
/ 10 января 2019

В настоящее время мы пытаемся заменить существующий рабочий код другим «будущим».

По сути, у нас есть отдельное приложение, которое вызывается всякий раз, когда пользователь нажимает кнопку внутри компонента молнии.

Открывается новое окно, и автономное приложение загружается просто отлично.

Вот снимок кода, открывающего приложение:

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. Они не поддерживаются в других контейнерах, таких как компоненты Lightning для Visualforce, Lightning Out или сообщества. Это верно, даже если вы обращаетесь к этим контейнерам в Lightning Experience или мобильное приложение Salesforce. "

Поскольку приложение работает самостоятельно (не в Lightning Experience или Salesforce1), могу ли я сказать, что наше текущее решение - единственный возможный способ сделать это?

Если нет, то какой будет другой подход, поэтому нам не нужно беспокоиться о будущих изменениях URL на стороне Salesforce?

1 Ответ

0 голосов
/ 05 мая 2019

Одной из альтернатив является использование передачи событий от lwc к компоненту aura, чтобы компонент aura оставался родительским от lwc для запуска события с необходимыми параметрами url и query и прослушать событие в ауре, используя document.addEventListener и запустить forcenavigatetoURL или sObject. В будущем, если они поддержат, мы можем измениться в одном месте.

...