В настоящее время мы пытаемся заменить существующий рабочий код другим «будущим».
По сути, у нас есть отдельное приложение, которое вызывается всякий раз, когда пользователь нажимает кнопку внутри компонента молнии.
Открывается новое окно, и автономное приложение загружается просто отлично.
Вот снимок кода, открывающего приложение:
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?