iOS App之间的跳转(URLSecheme和iOS9通用链接)

一、微信、qq等自带浏览器无法进行app之间的跳转

iOS9以后出来了通用链接跳转,效果可以看网易新闻、今日头条等,右上角会出来一个url链接

1-1

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”链接添加到备忘录,长时间点击,会出现一下界面,说明配置成功


iOS App之间的跳转(URLSecheme和iOS9通用链接)_第1张图片
1-2

最后可以在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 

iOS App之间的跳转(URLSecheme和iOS9通用链接)_第2张图片
iOS App之间的跳转(URLSecheme和iOS9通用链接)_第3张图片

注册完成后,app安装到手机上,在safari中输入 aheading:// 就可打开app

你可能感兴趣的:(iOS App之间的跳转(URLSecheme和iOS9通用链接))