iOS接入微信支付前奏

1、apple-app-site-association文件配置

apple-app-site-associon 是苹果公司提供的一种能让app和网站关联起来的配置文件格式,用于在app中实现Universal Links。该文件包含app与网站之间的关联信息,使得用户在点击网站链接时可以直接唤起手机上的app,实现跳转到app内对应页面的功能,提升用户体验。
微信小程序里提供的 URL Scheme 和 URL Link,我们通过h5链接唤起小程序实际就是依赖这个实现的,只不过 apple-app-site-association 这个配置文件是微信 app 自己去配置的。
这个比较常见的应用场景就是短信里的链接点击直接打开 app,我们手机上经常收到的各个 app 发送的各种活动信息,里面的让你惦记链接参加活动之类的也是用这实现的。

2、需要新建一个名为 apple-app-site-association 无文件后缀的文件

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "{TeamID}.{BundleID}",
                "paths": ["/app1/*", "/applink1/*"]
            },
            {
                "appID": "{TeamID}.{BundleID}",
                "paths": ["/app2/*", "/applink2/*"]
            }
        ]
    }
}

然后将此文件上传到服务器根目录下的 .well-known 目录下,也可以直接上传到根目录,Apple 校验的时候会先去 .well-known 目录下找,没找到的话会继续去根目录下找。
在服务器上上传了配置文件后,可以通过如下 3 个链接访问测试:

https://{你的域名}/.well-known/apple-app-site-association

https://{你的域名}/apple-app-site-association

https://app-site-association.cdn-apple.com/a/v1/{你的域名}

看下是否能直接访问到上传的 json 文件,如果访问时浏览器是直接下载文件,看下请求地址的响应头 Content-Type,必须要是 application/json 才能直接显示:

01D6DDA0-509C-45BB-9EA0-7563FB84DBAA.png

如果不是 application/json,自己在服务器上增加一个 MIME 类型,文件扩展名就是一个点 .,值 application/json,这样访问的时候浏览器就能正确解析显示 json 内容了。
如果能在 iphone 的备忘录中直接点击链接或者在 safari 浏览器中访问(域名/applink1/) 能打开手机上的 app,就说明配置成功了。注意配置好之后,实际 Apple 那边可能会有 24-48 小时左右的延迟,所以最好等 1 天在验证功能是否可用。

我的项目校验成否成功:域名/app1 复制到浏览器顶部有打开app则成功,我也是等了1天才成功

3、微信开发平台配置

根据第二步骤apple-app-site-association配置信息可以知道,
universalLink 内容格式是:域名+paths。

 https://www.baidu.cn/app1/ 

我项目写的是:域名/app1/

D3F838D8-063B-4C59-A605-4BF7AE1125B0.png

4、Xcode设置

打开Associated Domains开关,将Universal Links域名加到配置上

applinks:www.baidu.cn

我项目写的是:applinks:域名

参考:https://www.jianshu.com/p/d45e0116ab49
微信开放平台参考:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容