Google Spreadsheet в iframe открывается в режиме htmlview вместо режима редактирования на маленьких экранах? - PullRequest
1 голос
/ 06 марта 2020

У меня есть электронная таблица Google, где пользователи должны редактировать с помощью планшета. Поскольку ipad / tablet chrome не поддерживает кнопки изображений со сценарием, я встроил электронную таблицу в веб-приложение html с использованием iframe.

URL-адрес iframe - это URL-адрес / edit. Когда веб-приложение запускается с помощью ноутбука, оно работает хорошо, но после открытия с помощью ipad или мобильного устройства iframe автоматически загружается с URL-адресом htmlView, даже если на листе есть URL для редактирования

. загрузите URL-адрес для редактирования листа в любое устройство.

iPAD / Мобильный просмотр

enter image description here

Просмотр с ноутбука или компьютера

enter image description here

Я пробовал с

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>

<h3>This is test1</h3>
	<style>
		iframe {
			width: 100%;
			height: 1600px;
            background: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 100% 100%"><text fill="%23FF0000" x="50%" y="50%" font-family="\'Lucida Grande\', sans-serif" font-size="24" text-anchor="middle">Loading...</text></svg>') 0px 0px no-repeat;
		}
	</style>

<iframe class="second-row" src="https://docs.google.com/spreadsheets/d/1usDFz5VnURHYodpT6A9HGFKSHx65ATU1_0Qml2-hAec/edit?&rm=minimal" frameborder="0"></iframe>
  </body>
</html>
    function doGet() {
  return HtmlService
      .createTemplateFromFile('Index')
      .evaluate();
}

1 Ответ

1 голос
/ 18 марта 2020

Проблема в том, что Google Sheets обнаруживает пользовательский агент браузера и переключается на htmlview для мобильных устройств. До недавнего времени существовал случай, когда вы могли использовать ?overridemobile=true, а затем ?fd=true после URL редактирования для принудительного использования рабочего стола, но этот параметр теперь игнорируется.

В Chrome браузер, пользовательский агент может быть изменен из настройки, чтобы указать «сайт рабочего стола», но его нужно будет выбирать каждый раз, когда пользователь хочет нажать кнопку с изображением.

В скрипте Служб Google можно [getUserAgent()][2], но нет способа установить пользовательский агент.

По маршруту iframe в старых браузерах можно было изменить пользовательский агент, но эта опция была закрыта из-за повышенной безопасности браузера.

...