3

.NET MVC 5

我需要将动态文本添加到manifest.jsonweb 应用程序文件中的 start_url,甚至可能是动态启动画面(但我会对 start_url 感到满意)。start_url 需要包含一个种子,它本质上会创建一个“深”的 start_url,最终会产生类似的结果:

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

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

我不知道是否有办法将动态数据“流式传输”到链接中,或者我可能想出一种方法来动态创建“temp”,如 manifest.json.ABCDEFG 但这似乎很笨拙,我想可能会有更优雅和更清洁的方式。抱歉,如果我听起来有点含糊,或者我缺少正确的术语。

我已经查看了“如何使用 php 填充 manifest.json 文件? ”这几乎是我需要做的事情,但我不知道如何在 .NET 中执行此操作。

即使是一些将我引导至解决方案的链接也将不胜感激。我来了,否则在谷歌上是空的。

4

1 回答 1

2

我有一个类似的问题。我通过简单地将 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文件(可以驻留在您服务器上的任何位置):

{
  “名称”:“x”,
  "short_name": "x",
  “描述”:“x”,
  "start_url": "@startUrl@",
  "范围": "@startUrl@",
  “显示”:“独立”,
  “方向”:“景观主要”,
  “背景颜色”:“x”,
  “主题颜色”:“x”,
  “图标”:[
    {
      "src": "../images/@icon@144.png",
      “尺寸”:“144x144”,
      “类型”:“图像/png”
    },
    {
      "src": "../images/@icon@192.png",
      “尺寸”:“192x192”,
      “类型”:“图像/png”
    }
  ]
}

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

于 2018-08-09T20:53:56.020 回答