【uni-app】不使用uniCloud自动生成配置universal-links

751 阅读2分钟

     虽然官方说传统的方案操作繁琐,推荐使用uniCloud自动生成。但是我不怎么用uniCloud,一通操作下来,反而觉得自动生成的步骤比较杂乱。并且我的项目大部分还是用的传统云服务器,因此我认为传统方案更适合我,但是网上找的一些教程,根据步骤走还是有坑,我踩坑之后实现了一套可行的方案,记录下来。

一 . 适用情况

已有https证书,使用nginx代理域名的服务器,一般开发项目的时候,都会用来承载后台管理系统或者官网之类的网页,这种情况实在没必要再开通uniCloud。

二.配置步骤

1. 苹果开发者中心

获取苹果开发者中心上记录的appid和bundleid

并且在创建应用的时候勾选Associated Domains(实际上一般情况下不打算配置universal-links的也会勾选这个,只要确保有勾选就好了,但是如果之前没有勾选,那么补充勾选之后,要重新生成描述文件)

2. 服务器

nginx.conf上新增一条记录,确保访问 www.abc.com/apple-app-s… 返回正确的json字符串

这里注意,很多教程说要加 ulink,但是后续步骤好像跟ulink没关系了,并且我按照教程走总是失败,因此我用的是另一套方法,直接在nginx配置上返回数据,不用在根目录上放txt文件。

server{
    
    server_name  www.abc.com;
    location /apple-app-site-association {
		add_header Content-Type text/plain;
		charset UTF-8;
		return 200 '{"applinks":{
            "apps":[],
            "details":[{"appID":"appid.bundleid","paths":["*"]}]
        }}';
	}
}

appid.bundleid 用之前获取的数据代替,

这时候就生成了我们要的UniversalLinks:www.abc.com/apple-app-s… ,用浏览器访问看是否会返回正确的字符串。

3. HbuilderX

manifest.json-->app其他设置-->IOS设置-->关联域中填写域名

例如主域名是 www.abc.com,那就填写 applinks:www.abc.com

如果有加分享或者支付,那么点击在对应的地方填写定好的url就行了,例如:

manifest.json-->app模块配置-->分享-->微信分享-->ios平台通用链接,填写www.abc.com/apple-app-s…