WINNUM Community
Переход на страницу - Версия для печати

+- WINNUM Community (https://community.winnum.io)
+-- Сообщество Все сообщества (https://community.winnum.io/forumdisplay.php?fid=1)
+--- Сообщество Динамические приложения в WINNUM Platform (https://community.winnum.io/forumdisplay.php?fid=2)
+--- Темы: Переход на страницу (/showthread.php?tid=34)



Переход на страницу - Lamantur - 03-18-2025

Всем привет!
Если мы хотим создать еще одну страницу динамического приложения, мы заранее продумываем где и когда будем ее открывать. Самый простой способ - кнопка, но возможны и более сложные многоходовочки.
Итак: создали кнопку, зашли в настройки и создаем событие: "Переход на страницу" и получаем готовое решение, которое работает в большинстве случаев:
Код:
$("#63EC5ED4-9C93-4EA2-9EDF-36573CB1EEFC").click(function(event){
    baseApplicationDesignerUtils.gotoPage('7CB5B62C-0810-4735-8936-E43D6BDA422F');
});
Интерфейс редактора динамических приложений даже подсказывает нам название новой страницы и автоматом заменяет uuid - в коде ничего не надо править.
Проблема возникает когда мы создаем несколько дистрибутивов одного и того же приложения, с теми же самыми страницами и импортируем его снова и снова, например таким образом сохраняем старые версии, чтобы опробовать разные варианты. Или просто хотим сохранить все версии для отслеживания изменений и подписываем все варианты приложений.
В этом случае окажется, что когда импортируется новая страница приложения, то создаются для страниц новые uuid.  Для главной страницы тоже.  Angry

Можем обойти эту проблему, создав более сложный переход, но универсальный, бонусом мы сможем еще и что-то передать на другую страницу прямо в адресной строке - 

Код:
$('#quality_button').click(function(event){
    thisGoToPage("", "Например");
});



/*************************************************/
function thisGoToPage( param, page_title ){
    baseSdkUtils.service.WNDynamicApplicationHelper.getPageByTitle(
        baseSdkUtils.the.appoid,
        page_title,
        function( data ){
            var item = data.getElementsByTagName('item')[0];
            var oid = item.getAttribute('elementId'); 
            window.location.href = '/Winnum/views/pages/app/dynamic/dgw.jsp?puuid=' + oid + '&appid=' + baseSdkUtils.the.appoid + param + '&mode=yes' ;
        });
}

Функция thisGoToPage принимает 2 аргумента - параметр в виде строки, при этом можно писать несколько параметров через &, например &interval=day, он появится в адресной строке, откуда его легко прочитать и использовать. 
Ну и название страницы, тоже строковая переменная.
baseSdkUtils.the.appoid - это переменная уже есть у вас с нужным значением, если вы подключали медиа библиотеку стандартным скриптом. Если нет - то посмотрите на адресную строку в вашем редакторе - oid - это он и есть.

Теперь uuid и другие временные переменные не употребляются при переходе на страницу, у значит переход сработает всегда.