我们要求在我们的应用程序中启用通用链接。我们有一个基于Java的Web应用程序(spring)和一个iOS应用程序。要根据苹果启用通用链接,我们需要创建一个json文件apple-app-association-file并在服务器中托管此文件。现在java web应用程序部署在windows服务器的tomcat中,apche 2.4用作Web服务器。请告诉我如何在tomcat或web服务器或war文件内部(代码内)托管apple-app-association-file,我们正在使用maven结构。根据文档,我们需要删除文件扩展名和文件应该访问如下:
网络应用程序的网址:https://xyz.example.com
其中xyz.example.com映射到tomcat中webapp文件夹中的Web应用程序。(localhost:8080 / webApp)
apple-app-association-file访问为:https://xyz.example.com/apple-app-association-file
现在作为扩展不存在我如何托管它。我需要更改代码并将其视为servle请求。即使我这样做也不是一个好主意只是为了访问文件执行servet
此外,为文件提供正确的MIME类型也很重要,对于Universal Links,它可以作为application / json提供。如何在tomcat或java web app中设置mime类型(spring)
首先将文件重命名为apple-app-site-association.json,然后编写下一个Spring配置:
@EnableWebMvc
public class WebClientConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/.well-known/*")
.addResourceLocations("/path/to/your/static/resources")
.resourceChain(true)
.addResolver(new PathResourceResolver() {
@Override
protected Resource getResource(String resourcePath, Resource location) throws IOException {
if (resourcePath.equals("apple-app-site-association")) {
return location.createRelative("apple-app-site-association.json");
}
return super.getResource(resourcePath, location);
}
});
}
}
如下所述:developer.apple.com
您可以将文件放在服务器的根目录或.well-known子目录中。
然后该文件将使用正确的MIME类型“application / json”提供,并访问为:https://xyz.example.com/.well-known/apple-app-association-file
来自pITer Simonov的解决方案适合我!但我不得不在里面添加根路径
< servlet-mapping > (in web.xml)
像这样:
< url-pattern >/</url-pattern >
之后,资源处理程序工作正常!