微信支付-Universal Links

官方文档

微信支付更新到sdk(1.8.6)的时候,用到一个Universal Links,之前用的scheme已经被弃用。因为iOS系统中进行URL Schemes跳转的时候如果没有安装App,会提示Cannot open Page的提示,而且当注册有多个scheme相同的时候,目前没有办法区分,但是从iOS 9起可以使用Universal Links技术进行跳转页面,这是一种体验更加完美的解决方案。Universal Links的作用是在唤起当前app。这在申请开通微信支付的时候是必填的。
下面我们开始行动
第一步:1. 登录苹果开发者后台,在设置证书的页面找到 Identifiers -> App ID(设置包名)里,在对应的BundleId下勾选 Associated Domains如下图


进入证书页面

appID设置页面,现在你所用的id

勾选途中选项

保存设置,然后在重新生成pp文件。(这点很重要,不能被忽略)

第二步: 在Xcode(11)或更新的版本里面里面添加Associated Domains

按照图中的步骤添加好Universal Links


如图中所示操作

注意:一定要以applinks:开头,如applinks:baidu.com.其中这个baidu.com就是你的Universal Links(一个你们自己的可以访问的域名)

第三步:apple-app-site-association
自己创建一个名叫 apple-app-site-association的json格式文件,注意文件命不需要添加的后缀。apple官方参照地址

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "TeamID.BundleID",
            "paths": ["*"]
            }]
    }
}

appID:组成方式是TeamID.BundleID。登陆开发者中心,在Account -> Membership里面可以找到Team ID
paths:设定你的app支持的路径列表,只有这些指定路径的链接,才能被app所处理。星号的写法代表了可识别域名下所有链接,建议使用通配符星号。

上传该文件
上传该文件到你的域名所对应的根目录或者.well-known目录下(如上面的baidu.com所在的服务器里),这是为了苹果能获取到你上传的文件。上传完后,先访问一下,看看是否能够获取到,当你在苹果手机的备忘录中输入htps://baidu.com链接后,点击该链接应该是直接下载apple-app-site-association文件。

注意事项 : iOS 9.2之前,不用跨域都可以跳转, iOS 9.2之后,必须跨域才能进行跳转到原生app上。
iOS只会在App第一次启动时请求一次apple-app-site-association文件,服务器上该文件的更新不会让iOS本地的文件同步更新。

工程中添加处理方法(用不到这条的可以忽略)

现在用户点击我们配置的域名下的匹配的链接,直接可以进我们的app了。但是,如果想要能够获取到用户进来的链接,根据链接来处理,需要展示给用户的信息
那么需要在工程里的 AppDelegate 里实现 方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
{
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *webpageURL = userActivity.webpageURL;
        NSString *host = webpageURL.host;
        if ([host isEqualToString:@"apple..com"]) {
            //进行我们需要的处理
        }
        else {
            [[UIApplication sharedApplication]openURL:webpageURL];
        }
    }
    return YES;
}

当 userActivity 是 NSUserActivityTypeBrowsingWeb 类型, 则意味着它是由Universal Links进来,也就是处理逻辑的时候。

第四步:到工程plist中将添加微信白名单


添加白名单

如果发现plist中没有LSA.可以如下图操作


点击plist之后,点击open as...

然后点击向下的箭头,点击加号,手动输入LSA...手动添加
手动添加LSA

这里就可以删除测试机上你的应用,然后重新安装测试app,然后点击你备忘录里面的链接,就可以唤起你的app了

第四步:去微信发放平台注册你的应用。
这里比较坑爹的是注册账号的时候有各种限制,我只重新注册一个微信号,在用这个微信号来注册才注册成功的。


按提示填写
按提示填写

这里就基本注册成功了!

你可能感兴趣的:(微信支付-Universal Links)