一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
首先在这个配置过程中参考了三篇文章。
文章1
文章2
文章2
配置通用链接主要的文档:(苹果官方文档)https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html
1.创建一个apple-app-site-association包含有关您的应用程序可以处理的URL的JSON数据的文件。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "8R2UASF858.com.nhm.nahuomalles",
"paths": ["*", "/qq_conn/101912345/*"]
}
]
}
}
注意AppID信息的来源开发者网站上面的IDS文件
然后保存文件。创建json格式的一个空文件(取名必须为apple-app-site-association,并且没有后缀,隐藏后缀)
2.将apple-app-site-association文件上传到您的HTTPS Web服务器。您可以将文件放置在服务器的根目录或.well-known子目录中。(给后台上存,文件它会给我面一个链接,这个链接放在网页上面可以下载刚刚给它的文件的)
链接要求:
1.必须以https开头
2.get请求
3.能下载刚刚的文件
4.你的服务器必须得支持SSL
苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,进入验证网址进行验证:
3.到开发者网站上面的IDS文件,让它能支持Associated Domains,编辑完成之后,保存
注:这里可能会遇到一个错误就是你的App ID中并没有允许使用Associated Domains,所以需要进入开发者中心,编辑App ID允许Associated Domains,并且重新生成对应的签证文件并下载安装。在最新xcode11,添加了该项,开发者账号该appId下自动打开(如果打开后,保存信息,记得重新下载安装)
4.在app中处理通用链接
1)添加对应的域名(上面知道的域名)到Capabilities
在项目里面定位到Capabilities,找到Associated Domains,点击允许按钮,在Domains中添加对应的域名。(Domains中的域名必须是使用applinks开头,然后输入自己的域名即可。注意:当app第一次启动之后,会自动从你自己的域名目录下下载这个apple-app-site-association文件。)
5.实现AppDelegate里支持通用链接的实现方法
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0); {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
//微信登录
if([[NSString stringWithFormat:@"%@",url] rangeOfString:@"oauth"].location !=NSNotFound){
return [WXApi handleOpenURL:url delegate:self];
}
}
return YES;
}
6.info.plist配置信息添加多一项