iOS 微信 唤醒客户端失败&注册失败&需要UniversalLink 的解决方案

一、微信SDK1.8.6.1 更新之后 注册方法变更

+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;

其中 universalLink 微信开发者Universal Link

所以更细之后 友盟和shareSDK 等三方登录托管平台都需要相关的配置 参考:微信官网文档
iPhone 的最新系统 如果没有配置相关设置 可能出现无法唤醒客户端或者是注册APP
所以尽早的做好适配

二、 Universal Link 通用链接 参考:苹果官方文档1 参考文档2
UniversalLink与URL Schemes一样,访问该URL的时候 会检测对应的APP是否已安装。

Seamlessly link to content inside your app, or on your website in iOS 9 or later. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device.
Universal Link(通用链接)是苹果在iOS9推出的,一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和APP。

三、配置 Universal Link
1.苹果开发者账号打开配置
在这里插入图片描述
2、打开Associated Domains开关,将Universal Links域名加到配置上
以applinks:+你准备的UniversalLink的形式填写对应值。例如:applinks:help.wechat.com,注意此次应是裸的域名,不要加https或者文件名
在这里插入图片描述
如果没有Associated Domains选项,则添加。

在这里插入图片描述
3、微信配置对应的UniversalLink和SDK注册方法填写相同UniversalLink,微信的要求https开头 /结尾,列如:https://help.wechat.com/

4、配置JSON文件
创建一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名)。这里建议让后台人员在其本地创建,避免文件传输时,文件自动被更改格式、后缀自动添加等问题。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "XXXXXXX.OOOOOOO",
                "paths": [ "*" ]
            }
        ]
    }
}

说明:XXX表示苹果账号的团队ID,OOO表示项目的BundleID。
该文件若改动过,建议卸载重新安装,苹果重新主动请求
一般放在根目录下即可,若你的链接有重定向,建议尝试放置在.well-known子目录下,并且保证能GET请求到此文件,且文件不需要后缀名。

例如:以https://help.wechat.com为基础链接,则该文件请求路径为
https://help.wechat.com/apple-app-site-association
https://help.wechat.com/.well-known/apple-app-site-association

其实就是一个json,apps数组不用管,details里面填入对应得appID和paths。
浏览器打开这个地址,可以下载这个文件。另外GET请求这个地址,返回文件的JSON内容。
注意,返回的数据,不能存在乱码,否则说明JSON文件有问题。

5、可在safari浏览器中测试,要先卸载APP 重新运行一次即可,链接地址:https://help.wechat.com(微信的测试link) 页面加载完成之后下拉一下,是否有打开APP 的提示,有则配置成功

6、在Xcode中,在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI

这里的新的白名单的大小写不能错
在这里插入图片描述

7、常规的URL Types 和白名单还是需要添加对应的配置(可参考上下文图
在这里插入图片描述
8、 .除了之前常用的回调 还需要添加一个新的回调

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler {
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

四、总结:
配置的过程请一定要仔细,大致可分为2个阶段。
一、优先完成safari中测试,能提示打开APP
二、确保后台配置的地址可以GET请求和网页打开直接下载下来的json文件不会乱码
三、再配置微信相关内容
如果没有条件配置apple-app-site-association文件的,可以去三方托管平台例如友盟或者是shareSDK 都会有提供配置相关参数的功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值