首页 > 解决方案 > 如何将 Google Analytics 脚本添加到 Uno WebAssembly

问题描述

我正在尝试将谷歌标签管理器脚本添加到 Wasm 项目。为此,我在文件夹中创建了一个新的脚本localscript.js文件WasmScripts。这就是该文件的样子

(function () {
    const head = document.getElementsByTagName("head")[0];

    var myScript = document.createElement('script');

    myScript.setAttribute('src', 'https://www.googletagmanager.com/gtag/js?id=UA-1234567-7');

    head.appendChild(myScript);
})();
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());

gtag('config', 'UA-1234567-7');

然后我将这个脚本嵌入到这样的wasm.csproj文件中

  <ItemGroup>
      <EmbeddedResource Include="WasmCSS\Fonts.css" />
      <EmbeddedResource Include="WasmScripts\AppManifest.js" />
      <EmbeddedResource Include="WasmScripts\localscript.js" />
  </ItemGroup>

对我来说一切都很好,但是当我运行它时,localscript.js会在googletagmanager. 我该如何解决这个问题,以便googletagmanager首先出现支持代码然后出现?

标签: javascriptxamluno-platform

解决方案


您可以使用提供的Uno.Wasm.Bootstrap require.js

require(
    ["https://www.googletagmanager.com/gtag/js?id=UA-1234567-7"],
    () => {
        window.dataLayer = window.dataLayer || [];
        function gtag() { dataLayer.push(arguments); }
        gtag('js', new Date());

        gtag('config', 'UA-1234567-7');
    }
);

这将使箭头函数中的代码在脚本下载后执行。


推荐阅读