如何将动态数据注入网络应用 manifest.json 文件?

How can I inject dynamic data into a web app manifest.json file?

.NET MVC 5

我需要为 Web 应用程序的 manifest.json 文件中的 start_url 添加动态文本,甚至可能添加动态启动画面(但我会对 start_url ). start_url 需要包含一个种子,该种子将本质上创建一个“深度”start_url,最终导致如下结果:

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

其中“ABCDEFG”为动态文本,不同客户端会有所不同。 "ABCDEFG" 将在服务器端交付,course.This 将消除对单独 manifest.json 文件的需求,这将是一场噩梦。

我不知道是否有办法将动态数据“流”到 link 中,或者我可能想出一种动态创建“临时”的方法,例如 manifest.json.ABCDEFG 但这看起来很笨拙,我认为可能有一种更优雅、更简洁的方法。对不起,如果我听起来有点含糊或者我缺少正确的术语。

我查看了“How can I use php to populate a manifest.json file?”,这几乎是我需要做的事情,但我不知道如何在 .NET 中做到这一点。

即使是一些 link 指导我找到解决方案,我们也将不胜感激。我要在 google.

上空着

我遇到了类似的问题。我通过简单地将 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"
    }
  ]
}

我必须确保匿名用户可以调用该操作,而且效果很好。