IOS 9是美国苹果公司于2015年9月16日正式推出的移动操作系统。
iOS 9系统比iOS 8更稳定,功能更全面,而且还更加开放。iOS 9加入了更多的新功能,包括更加智能的Siri,新加入的省电模式。iOS 9为开发者提供5000个全新的API。
备忘录
备忘录在iOS 9中可以轻松制作待办事项的核对清单,加入照片、地图或网址链接,甚至随手画个草图 。
地图
地图的 "公交" 视图,为你提供附带路线和方向指示的公共交通信息,当你在地图中进行搜索时,会看到包括餐饮、购物和娱乐等类别的列表。你可以逐项查看这些分类,了解周围都有哪些好去处。
iCloud Drive
全新 iCloud Drive app 内置于 iOS 9 中,让你能直接从主屏幕上,便捷访问 iCloud 里存储的任何文件。你可以在这个 app 中轻松搜索,从而找到想要的文件;可以按日期、名称或添加到 Mac 上的任何标签来浏览全部文件;还可以在这个 app 里预览和整理文件。
邮件
iOS 9 为邮件带来了全新的强大功能,因此,你可以在 iOS 设备上做到更多,甚至再随手来点创意。你可以使用标记功能来为附件中的照片和文件添加图画、评论或签名,还可以轻松将 iCloud Drive 中保存的文件添加为附件。
多任务处理
在iOS 9,你不必离开正在使用的 app,便可以打开另一个 app。这样,你就能快速浏览网页,回复文本信息,或是随手记下一条备忘,然后将它们滑向一边,回到之前使用的 app 中。
Siri
让 Siri 按日期、位置和相簿名称来搜索你的照片和视频,如果你正在查看Safari、邮件或备忘录等 app 中的内容,并且希望稍后继续,Siri 可以提醒你,你的搜索屏幕现已预先推荐了联系人、app、附近的地点等内容。此外,它方方面面都更加主动,让许多小事变得更轻松便捷。
Universal link
Universal link是iOS9的一个新特性。以shareinstall为例,通过Universal link,App可以通过各种浏览器跳转到App(例如微信内可不通过safari,一键跳转到App),真正实现一键跳转到相应界面。 备注:iOS9以上推荐使用Universal link。
(1)配置developer.apple.com的相关信息
到苹果开发者中心,为当前的App ID开启Associated Domains服务:
(2)配置Xcode
在Xcode中配置ShareInstall为当前应用生成的关联域名:Associated Domains 开关打开,添加 Domains:applinks:f6bkarebhf22eb.shareinstall.com
在AppDelegate中的continueUserActivity方法中调用,用来处理Universal link。
//Universal Links 通用链接 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler { //判断是否通过ShareInstall Universal Links 唤起App if ([ShareInstallSDK continueUserActivity:userActivity]) { return YES ; }else{ //其他代码 return YES; } }
(3)配置App的URL Scheme
iOS系统中App之间是相互隔离的,通过URL Scheme, App之间可以相互调用,并且可以传递参数。 备注:iOS9以下通过Url Scheme实现拉起。
(4) 在Xcode里选中Target—Info—URL Types, 配置shareInstall为当前应用生成的Url Scheme,如图所示:
identifier 配置为 com.ShareInstall,URL Schemes从shareInstall获取(dekf0466)。 注:identifier 一定要配置为com.ShareInstall
(5)URL Scheme相关代码配置
注意:当需要在shareInstall这个方法中处理第三方回调的时候(比如支付宝、微信回调等),请注意区分。
//iOS9以下 URI Scheme -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ //判断是否通过ShareInstall URL Scheme 唤起App if ([ShareInstallSDK handLinkURL:url]) { return YES; }else{ //其他代码 return YES; } return YES; } //iOS9以上 URL Scheme - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(nonnull NSDictionary *)options { //判断是否通过ShareInstall URL Scheme 唤起App if ([ShareInstallSDK handLinkURL:url]) { return YES; }else{ //其他代码 return YES; } return YES; }
(6)获取唤醒参数,直达具体页
通过在url中附带具体的参数,唤醒app并跳转到具体页。
- (void)getWakeUpParamsFromSmartInstall: (id) params withError: (NSError *) error{ NSLog(@"唤醒参数params=%@",params); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"URL shceme 进来的" message:[self DataTOjsonString:params] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; //弹出提示框(便于调试,调试完成后删除此代码) [alert show]; }
(7) 其他代码配置
如果做测试,获取参数,则必须在Appdelegate.h加上如下测试代码。
#pragma mark 将oc数据类型转成NSString -(NSString *)DataTOjsonString:(id)object { if (!object) { return null; } NSString *jsonString = null; NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object options:NSJSONWritingPrettyPrinted error:&error]; if (! jsonData) { NSLog(@"Got an error: %@", error); } else { jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; } return jsonString; }