一、微信、qq等自带浏览器无法进行app之间的跳转
iOS9以后出来了通用链接跳转,效果可以看网易新闻、今日头条等,右上角会出来一个url链接
1、项目的配置
1)、进入苹果Apple Developer --- Member Center - Certificates, Identifiers & Profiles – Identifiers - App IDs –Edit 然后开启打钩 Associated Domains 后保存。
2)、项目-target-Capabilities-Associated Domains-off按钮打开,点击'+'添加
输入 ‘applinks:服务器域名’ , 例如:applinks:launcheapp.aheading.com
2、apple-app-site-association文件
apple-app-site-association是IOS中一个JSON格式的“通用链接”配置文件,在其paths键中设置通用链接的具体规则。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "PWDGGXDDAS.com.ahead.app"
"paths": ["*"]
}
]
}
}
appID:TeamID.bundid
注: 我从开发者-Membership中找到teamId,发现跳转不了。最后在Certificates, Identifiers & Profiles中appids下有Prefix,跳转成功
path:内容可明确哪些通用链接需要被处理,哪些不需要;'*'代表任何链接都可以跳转(注意:区分大小写)例如:[ "/wwdc/news/", "NOT /videos/wwdc/2010/*"]
创建名为apple-app-site-association文件,不需要任何后缀名,放入服务器根目录下,并且服务器支持https的。
配置完以上步骤后,第一次安装app的时候,app会从 “域名/apple-app-site-association” 这个链接中下载文档(抓包)
安装完后,可以把 “域名/apple-app-site-association”链接添加到备忘录,长时间点击,会出现一下界面,说明配置成功
最后可以在AppDelegate进行数据操作
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler;
注意事项:
1、WAP页面的域(a.com)和抛出的通用链接的域(b.com)必须不一样。如果同域,抛出的通用链接在很多情况下会被系统忽略,就算已安装APP,也打不开并且直接重定向到下载页。
2、该方法适用于iOS9以上,所以要适配iOS9以下的,通用链接和URLScheme都要写上
1、跳转到别的app
iOS9后就要添加跳转app的白名单,info.plist -LSApplicationQueriesSchemes
2、跳转到自己的app
在info.plist中注册URL Schemes
注册完成后,app安装到手机上,在safari中输入 aheading:// 就可打开app