vuejs - 使用 Google 地图的 Safari 浏览器导航

vuejs - Safari browser navigation with Google map

我有一个带有 vue-router 的 VueJS 应用程序,我遇到了包含 Google 地图的页面问题(没有 vue 插件的标准实现)

我使用 Safari,Google 地图打破了它的浏览器导航流程。

流程是:

我有最新的 vue-router 版本 (3.0.1),但我不明白发生了什么。此错误仅出现在移动和桌面 Safari(所有版本)中 请帮助 =)

解决方案是在您要使用它之前添加一个 google 地图脚本(例如:在带有地图的页面上)

function createPreconnectElement(src) {
  const preconnectElement = document.createElement('link');
  const headElement = document.querySelector('head');
  preconnectElement.rel = 'preconnect';
  preconnectElement.href = src;
  preconnectElement.crossOrigin = '';
  headElement.prepend(preconnectElement);
}

function init(elem) {
  return new Promise((resolve, reject) => {
    if (!(window && window.google && window.google.maps)) {
      const scriptElement = document.createElement('script');
      const appendToElement = elem || document.querySelector('head');
      const src = `https://maps.googleapis.com/maps/api/js?v=beta&key=${API_KEY}`;
      scriptElement.src = src;
      scriptElement.type = 'text/javascript';
      createPreconnectElement(src);
      appendToElement.appendChild(scriptElement);
      scriptElement.onload = () => {
        resolve();
      }
    } else {
      reject();
    }
  });
}

解决问题