问题概述:

开发的项目中IOS客户端早期是通过短连接跳转safari中介页面的方式实现唤醒APP,这种方式需要中介网页通过JS 延时执行的方式判断 系统是否安装了APP。

目前微信对Scheme 打开外部应用做了限制。IOS 要做到从微信直接打开APP 需要使用到 Universal Links 。IOS app 第一次启动时,系统默认从支持HTTPS的注册域名下获取 apple-app-site-association 文件Universal Links内容(https://xxx.com/apple-app-site-association,https://xxx.com/.well-known/apple-app-site-association)。

apple-app-site-association  文件内容格式:

{
	"applinks": {
		"apps": [],
		"details": [{
			"appID": "appID.com.xxxx",
			"paths": ["/app/*", "/"]
		}, {
			"appID": "appID.com.xxxx",
			"paths": ["/app/*", "/"]
		}]
	}
}

服务端通过反向代理服务器Nginx  直接响应静态字符串的方式 向IOS客户端 提供  apple-app-site-association查询功能,这种方式既可以避免因系统升级造成apple-app-site-association 查询不可用,也可以提升请求响应速度减轻后端 web 服务器不必要的压力。

具体配置方式:在nginx 配置文件 server 节点下新增 两个location 配置:

location /apple-app-site-association {

charset UTF-8;

default_type text/html;

return 200 '{\"applinks\":{\"apps\":[],\"details\":[{\"appID\":\"appID.com.xxxx\",\"paths\":[\"/app/*\",\"/\"]},{\"appID\":\"appID.com.xxxx\",\"paths\":[\"/app/*\",\"/\"]}]}}';

}

location /.well-known/apple-app-site-association {

charset UTF-8;

default_type text/html;

return 200 '{\"applinks\":{\"apps\":[],\"details\":[{\"appID\":\"appID.com.xxxx\",\"paths\":[\"/app/*\",\"/\"]},{\"appID\":\"appID.com.xxxx\",\"paths\":[\"/app/*\",\"/\"]}]}}';

}

 

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐