Как изменить URL во время выполнения - PullRequest
0 голосов
/ 29 января 2020

Мы пытаемся использовать браузер Cobalt (20.stable) в качестве браузера нашего веб-SPA-приложения. Мое требование - иметь возможность изменять URL во время выполнения, что я смог найти в коде: Is:

  starboard::shared::starboard::Application::Link(const char* link_data)

, что в итоге приводит к отправке:

 kSbEventTypeLink

К сожалению, это не работает, так как код игнорирует вызов; обработка достигает точки:

  // TODO: Remove this when terminal application states are properly handled.
  if (deep_link_event->IsH5vccLink()) {
    browser_module_->Navigate(GURL(deep_link_event->link()));
  }

В моем случае я пытаюсь изменить URL-адрес, чтобы сказать https://www.example.com. Должен быть способ сделать это, так как при навигации у нас всегда может быть ссылка, которая заставит браузер go на какой-нибудь URL?

Ответы [ 3 ]

0 голосов
/ 29 января 2020

Когда вы говорите, во время выполнения вы хотите изменить начальный URL при первом запуске приложения? Если это так, вы можете просто использовать параметр --url.

Таким образом, вы можете сделать следующее: cobalt --url="https://www.example.com"

0 голосов
/ 03 февраля 2020

Я сделал патч, чтобы разрешить изменение URL. Мне просто нужно вызвать starboard :: shared :: starboard :: Application :: Link ("https://www.example.com"). Внутри этого вызова размещается DeepLinkEvent. Патч: https://gofile.io/?c=9GvNHX

0 голосов
/ 29 января 2020

Портирующий слой не должен управлять навигацией напрямую. Вместо этого ваша реализация Starboard может отправлять событие с глубокими ссылками, которое может быть перехвачено веб-приложением, которое выполнит навигацию. См. h5vcc_runtime.idl для Web API.

Тем не менее, если вы создаете SPA, зачем вам вообще нужно менять URL? Начальный URL-адрес веб-приложения контролируется переключателем командной строки --url.

...