Параметры Bubble URL: все, что вам нужно знать
Перевод статьи https://www.amliesolutions.com/bubble/basic-features/bubble-url-parameters
В процессе изучения работы с Bubble, вы будете сталкиваться с параметрами URL. Что такое параметры URL и как настроить параметры URL в Bubble?
По сути, параметры URL позволяют сохранять и извлекать информацию из строки URL в вашем браузере. Как и в случае с custom state, вы можете сохранять текст, целые числа (числа) и любые типы данных Bubble прямо в URL, и в результате появляется множество интересных кейсов.
Как выглядят параметры URL?
Параметры URL следуют заданному шаблону, который вы легко можете использовать независимо от того, используются ли они в Bubble или другой странице/приложении. Как только вы это узнаете, вы начнете узнавать его во всех приложениях, которые используете. Фактически, вы уже можете узнать один из Bubble:

debug_mode = true используется для отображения и скрытия встроенного отладчика Bubble в нижней части экрана.
Если вы посмотрите на редактор, вы также увидите, что Bubble использует там параметры URL, чтобы сообщить редактору, что показывать на экране:

type = page сообщает Bubble, что вы работаете над страницей, name = index - это имя страницы, id = example - это имя приложения, а tabs = 1 - это вкладка Design.
Какая структура у параметров URL
Параметры URL отделяются от URL страницы вопросительным знаком (?). Каждая отдельная запись после первой разделяется амперсандом (&).
URL Parameter

Каждый параметр URL состоит из ключа и значения. В приведенном выше примере у нас есть четыре параметра.
Key

Ключ - это имя сохраняемой записи. В приведенном выше примере Bubble использует четыре разных ключа для их идентификации. Чтобы ключи работали должным образом, их ключи должны иметь уникальные имена.
Value

Значение представляет собой содержимое ключа и отделяется от ключа знаком равенства (=).
Настройка параметров URL в Bubble
Чтобы передать параметр URL браузеру, вы можете использовать действие «Перейти на страницу». Если вы переходите на ту же страницу, что и в данный момент, URL обновится без необходимости перезагружать страницу, что немедленно сделает изменение доступным.

Установите флажок "Отправить дополнительные параметры на страницу", чтобы добавить новые ключи к параметру URL.
Всякий раз, когда вы используете действие «Перейти к странице», все существующие параметры URL будут удалены, поэтому не забудьте установить флажок «Отправить текущие параметры страницы», если вы хотите их сохранить. Помните также, что Bubble считает любое действие «Перейти на страницу» как загрузку новой страницы, поэтому любые настроенные вами workflows загрузки страницы будут запускаться, даже если вы остаетесь на той же странице.
В приведенном выше примере ваш URL будет выглядеть так:

Замечательно! Итак, мы передали нашему URL простое текстовое значение. Но какие еще типы данных вы можете использовать? Фактически вы можете ссылаться на большинство вещей в параметре URL, но иногда вам нужно знать, какое поле передать URL, чтобы Bubble распознал его. Давайте посмотрим несколько примеров:
Передача данных из базы данных в URL
На объекты базы данных ссылаются по их уникальному идентификатору. С точки зрения базы данных, это первичный ключ записи базы данных - уникальная строка текста, которая гарантирует, что мы ищем правильную запись. Чтобы передать данные в URL, просто передайте этот уникальный идентификатор данных в качестве значения. Вы можете назвать ключ как хотите:

В этом примере мы передаем уникальный идентификатор текущего пользователя в параметр URL.
Передача Option Set в URL
Option Sets ведут себя немного иначе, чем база данных, поскольку они хранятся в формате JSON. Option Sets имеют только одно встроенное поле: поле «Отображение». Это поле, на которое мы будем ссылаться. Настройте действие «Перейти к странице» и установите «Отображение Option Set» в качестве значения.

Помните, что поле Display должно быть уникальным, чтобы возвращать ожидаемые результаты. В отличие от уникальных идентификаторов в базе данных, Bubble не заставляет вас устанавливать уникальные значения.
Чтение параметров URL
Чтение текстового значения
В первом параметре URL мы передали параметр с ключевой навигацией и значением users:

Затем давайте воспользуемся этим параметром в условии, чтобы показать группу.
- Выберите группу, которую вы хотите показать при наличии этого параметра.
- Перейдите на вкладку Conditions.
- Добавьте новое условие и введите поле Get data from page URL.
- Задайте Parameter name для навигации и оставьте тип как текст
- Завершите выражение, введя users.

Чтение значения Thing или Option Set из базы данных
Как мы уже выяснили, объекты базы данных (например, пользователи) идентифицируются по их Unique ID. Но нам также необходимо существенно изменить выражение, чтобы Bubble знал, что мы ищем. На этот раз давайте создадим группу для получения ее источника данных по URL:
- Выберите группу, в которую вы хотите загрузить пользователя
- Убедитесь, что вы установили его тип данных на User
- В качестве источника данных используйте ссылку Get data from page URL.
- Задайте Parameter name для User и измените Type User.

Установив User в качестве типа, мы сообщаем Bubble, какие данные нам нужны. С действующим Unique ID в URL Bubble найдет для нас подходящего пользователя.
Как видите, параметры URL - это невероятно гибкая функция, которая хранит не только текст, но и все виды данных.
Часто задаваемые вопросы про URL параметры
Что такое параметры Bubble URL?
Параметры URL - это способ хранить и читать данные в строке URL вашего браузера. Параметры URL отделяются от обычного URL вопросительным знаком (?), а если у вас более одного параметра, каждая запись разделяется амперсандом (&).
Что делает «Get data from page URL»?
Оператор Get data from page URL позволяет вам прочитать значение параметра URL в Bubble. Его можно настроить для чтения простых данных, таких как текст и числа, но вы также можете настроить его для поиска записей в своей базе данных (путем ссылки на Unique ID этой записи) и Option Sets (путем ссылки на отображаемое значение этого набора) .
Вы также можете использовать эту функцию для чтения пути к текущему URL, например www.myapp.com/page/path, и даже для возврата пути в виде списка, если у вас есть несколько значений после имени страницы.
Что делает «Send current page parameters»?
Параметр «Send current page parameters» в Bubble гарантирует, что параметры URL не будут потеряны при использовании действия «Go to page». Если вы используете это действие для передачи нового параметра, Bubble сотрет все параметры, присутствующие в данный момент в URL-адресе.
Если вы установите этот флажок, существующие параметры сохранят свое значение, а новый параметр будет просто добавлен к нему.
Совместимы ли параметры URL со всеми браузерами?
Да, вы можете безопасно использовать параметры URL в Bubble, не беспокоясь о совместимости. Теоретически общая длина URL может стать слишком длинной и привести к ошибке 414 Request-URI Too Long, но для этого вам потребуется передать (нереально) массивную строку.
Можно ли использовать параметры URL для навигации в Bubble?
Да, и есть несколько преимуществ использования параметров URL вместо custom state и действий. Что наиболее важно, использование параметров URL позволит вашим пользователям использовать кнопку браузера «Назад» для навигации.
Как передать параметр URL?
Самый простой способ настроить параметры URL - использовать действие «Go to page» и установить флажок «Send more parameters to the page». Это позволит вам установить key (имя параметра) и value (данные, которые вы хотите сохранить в URL). Вы можете использовать это действие на странице, не перезагружая ее, что приведет к мгновенному изменению URL.
Вы также можете указать URL, который включает параметр URL. Bubble тоже это распознает.
Как мне прочитать параметры URL?
Вы можете получить доступ к содержимому параметров URL с помощью оператора Get data from page URL. Во вводе имени параметра вы выбираете key (имя), которое вы дали параметру, а в раскрывающемся списке типа вы выбираете, какие данные вы пытаетесь прочитать.
Данные в базе данных идентифицируются по их Unique ID, а наборы параметров - по полю отображения.