代码之家  ›  专栏  ›  技术社区  ›  HumbleBeginnings

如何将动态数据注入web应用程序清单。json文件?

  •  3
  • HumbleBeginnings  · 技术社区  · 7 年前

    .净MVC 5

    manifest.json 文件,甚至可能是动态启动屏幕(但我很乐意使用start\u url)。start\u url需要包含一个种子,该种子将基本上创建一个深度start\u url,最终产生如下结果:

    {
      "background_color": "black",
       ....
      "start_url": "/ABCDEFG”
    }
    

    其中,ABCDEFG是动态文本,对于不同的客户端,它会有所不同。当然,“ABCDEFG”将在服务器端交付。这样就不需要单独的 这将是一场噩梦。

    我不知道是否有办法将动态数据流式传输到链接中,或者我可能会想出一种方法来动态创建临时动态清单。json。但这似乎很笨拙,我认为可能有一种更优雅、更干净的方式。对不起,如果我听起来有点含糊或我缺乏正确的术语。

    How can I use php to populate a manifest.json file? “这几乎正好说明了我需要做什么,但我不知道如何在.NET中做到这一点。

    即使是几个链接,引导我到一个解决方案将不胜感激。我在谷歌上找到了另外一个空白。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Glen Little    6 年前

    我也有类似的问题。我通过简单地将json文件作为字符串读取并替换一些占位符来解决这个问题。

    这是我的控制器(带有假变量名):

    [AllowAnonymous]
    public class PublicController : Controller
    {
      public ActionResult SiteManifest()
      {
        var rawJsonText = System.IO.File.ReadAllText(Path.Combine([MySourceFolder], "rawManifest.json"));
        rawJsonText = rawJsonText.Replace("@url@", [MyRootUrl]);
        rawJsonText = rawJsonText.Replace("@icon@", [MyIconName]);
        return Content(rawJsonText, "application/json");
      }
    }
    

    rawManifest.json 文件(可以驻留在服务器上的任何位置):

    {
      "name": "x",
      "short_name": "x",
      "description": "x",
      "start_url": "@startUrl@",
      "scope": "@startUrl@",
      "display": "standalone",
      "orientation": "landscape-primary",
      "background_color": "x",
      "theme_color": "x",
      "icons": [
        {
          "src": "../images/@icon@144.png",
          "sizes": "144x144",
          "type": "image/png"
        },
        {
          "src": "../images/@icon@192.png",
          "sizes": "192x192",
          "type": "image/png"
        }
      ]
    }