IOS9推出的universal link

什么是universal link?
通用链接是Apple在WWDC2015上为iOS9引入的一个新功能,是通过传统HTTP链接来启动App的技术。可以使用相同的网址打开网站和App。通过唯一的网址,就可以链接到App中具体的视图,不需要特殊的schema。如果用户没有安装App则链接到对应的普通网页。之前使用scheme进行应用之间的跳转比较麻烦,需要写很多的scheme字段。
使用universal link需要什么条件呢?
有一个注册的域名
通过 SSL 访问域名
支持上传一个 JSON 文件到你的域名
至少 iOS 9 beta 2 版本 [下载],这很重要, 因为如果是之前的测试版本你需要做额外的操作。
至少 Xcode 7 beta 2 [下载]
开始使用universal link?

第一步:添加域名到 Capabilities

首先, 你必须在 Xcode 的 capabilities 里 添加你的 APP 域名, 必须用 applinks: 前置它:还添加一些你可能拥有的子域和扩展(www.domain.com, news.domain.com 等等)。

IOS9推出的universal link_第1张图片
Snip20170406_1.png

这将使你的 APP 从你的域名请求一个特殊的 JSON 文件 apple-app-site-association。 当你第一次启动 APP,它会从 https://domain.com/apple-app-site-association 下载这个文件。跳到下个步骤来了解如何构建这个文件。
这将使你的 APP 从你的域名请求一个特殊的 JSON 文件 apple-app-site-association。当你第一次启动 APP,它会从 https://pre-jr1.letv.com/apple-app-site-association下载这个文件。跳到下个步骤来了解如何构建这个文件。

第二步:创建apple-app-site-association文件,记住此文件不要添加后缀名,编辑完成此文件之后要上传到我们的服务器。
编辑apple-app-site-association文件的内容:
{
"applinks":{
"apps":[],
"details":
[
{
"appID":"4B7W4R45RH.com.letv.jr",
"paths":["/mleplatform/current/","/mleplatform/regular/"]
}
]
}
}
appID的拼接方式为:teamID+bundleID

IOS9推出的universal link_第2张图片
Snip20170406_2.png

第三步:如果要处理通用链接的话,需要在APPDelegate方法中进行处理。

  • (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
    {
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
    NSURL *webpageURL = userActivity.webpageURL;
    NSString *host = webpageURL.path;
    if ([host isEqualToString:@"/mleplatform/current/detail.html"]) {
    [[LFDRouter shared] openURL:[NSString stringWithFormat:@"lefinance://currentDeposit/detail?%@", webpageURL.query]];
    }else if ([host isEqualToString:@"/mleplatform/regular/project-detail.html"]) {
    [[LFDRouter shared] openURL:[NSString stringWithFormat:@"lefinance://fixedDeposit/detail?%@", webpageURL.query]];
    }
    } else if ([userActivity.activityType isEqualToString:@"com.apple.corespotlightitem"]) {
    // spotlight
    NSString *url = userActivity.userInfo[@"kCSSearchableItemActivityIdentifier"];
    if (url) {
    [[LFDRouter shared] openURL:url];
    }
    }
    return YES;

}

你可能感兴趣的:(IOS9推出的universal link)