getCurrentPosition устарел

Я использовал Карты Google, встроенные в сайт, созданный на script.google.com, используя службу HTML следующим образом:

HtmlService.createTemplateFromFile('index.html');

Это было фантастически, я создал веб-приложение со встроенной картой (см. //script.google.com/macros/s/AKfycbzFiIPsnNgDnz8pmykbyok1xwDdL85EEAwqohoSo9G1QasbWNk/exec). Однако теперь меня предупредили, что «использование getCurrentPosition и watchPosition в фреймах из разных источников устарело и будет отключено в M63 примерно в декабре 2017 года».

Проблема в том, что использование HtmlService.createTemplateFromFile на script.google.com не дает мне возможности (известной мне) добавить allow="geolocation" к iFrame (HtmlService автоматически генерирует iFrame). Это приведет к сбою веб-приложения в декабре.

Посоветуйте, что мне делать, чтобы не было проблем!!!

Большое спасибо,

Сара.


person Sarah    schedule 30.10.2017    source источник


Ответы (1)


Вы можете проверить эти ссылки: 1 и 2: Прекращение поддержки разрешений в кросс-оригинальных фреймах. Чтобы фрейм из разных источников мог использовать эти функции, на странице внедрения должна быть указана политика функций, которая включает функцию для фрейма.

Например, чтобы включить геолокацию в iframe, встраиватель может указать тег iframe следующим образом:

<iframe src="https://example.com" allow="geolocation"></iframe>

Если вы являетесь разработчиком веб-сайта, который использует iframe из разных источников, и вы хотите, чтобы эти iframe по-прежнему могли запрашивать/использовать одну из вышеперечисленных функций, необходимо будет изменить страницу, на которой встроен iframe. Самый простой способ сделать это — изменить тег, включив в него атрибут allow, определяющий имя разрешения. Например, чтобы включить геолокацию и микрофон/камеру для iframe, необходимо указать следующее:

<iframe src="https://example.com" allow="geolocation; microphone; camera"></iframe>

Допустимые значения для разрешения включают:

  • геолокация
  • микрофон
  • камера
  • миди
  • зашифрованные носители

Обратите внимание, что если iframe, использующий разрешение, имеет тот же источник, что и страница верхнего уровня, то никаких изменений вносить не нужно.

Надеюсь это поможет!

person abielita    schedule 30.10.2017
comment
Спасибо за подробный ответ, Abielita! Кажется, это на правильном пути. К сожалению, моя проблема в том, что я не создаю iFrame сам - он автоматически генерируется script.google.com. Я предполагаю, что мне нужно дать указание службе script.google каким-то образом включить allow=geolocation в iFrame при его создании, но я не уверен, как это можно сделать. Я знаю, что вы можете использовать .setXFrameOptionsMode для настройки разрешений для фреймов из разных источников, но это позволяет только встраивание, а не геолокацию... - person Sarah; 01.11.2017