一、唤醒iOS应用程序的几种方式
唤醒应用是iOS开发中常见的技术,应用唤醒的方式有多种,概括下来,可以分为如下几类:
直接打开App
通知唤醒
scheme唤醒
Universal Links唤醒
直接打开App是最直接的唤醒应用程序的方式,以iPhone为例,可以从主屏幕、搜索推荐、应用库等场景中进行打开。
当用户收到通知消息时,点击通知栏的通知消息也可以唤醒应用程序,通知分为本地通知和远程通知两种,从唤醒应用程序的作用上来说,这两种通知的逻辑是一致的。下面代码示例了发送本地通知:
- (void)addLocalNotification {
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound completionHandler:^(BOOL granted, NSError * _Nullable error) {
}];
UNMutableNotificationContent *notificaiton = [[UNMutableNotificationContent alloc] init];
notificaiton.title = @"本地通知";
notificaiton.body = @"通知内容";
notificaiton.badge = @(1);
UNTimeIntervalNotificationTrigger *trriger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:5 repeats:NO];
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"requsetID" content:notificaiton trigger:trriger];
[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
}];
}
通过Scheme来唤醒应用程序也非常简单,在上一篇教程中,我们有介绍分享功能的集成,就有配置和使用过Scheme。要通过Scheme唤醒应用程序,首先需要添加URL Types,添加方法如下图所示:
上面我们定义了一个URL Scheme为deeplinkdemo,我们可以直接在浏览器中使用deeplinkdemo://开头的链接来唤醒此应用程序。
Universal Link是一种更加强大的唤醒应用程序的方式,相关介绍官网如下:
Universal Link是iOS 9之后新增的应用跳转功能,其可以无缝的连接网站与App,不需通过浏览器做中转,即可以实现应用间的无缝切换。
了解了上述的几种应用程序的唤醒方式,我们回到本教程的主题:DeepLink。DeepLink又称为深度超链,其是指应用以上技术进行应用程序的无缝调起、场景还原、营销唤醒等业务逻辑。下面,我们就介绍如何以友盟工具平台为基础来为应用程序接入智能超链功能。
二、U-Link SDK集成
使用CocoaPods的方式来集成U-Link SDK非常方便,只需要在Podfile文件夹中添加如下依赖即可:
pod 'UMCommon'
pod 'UMDevice'
如果项目没有使用CocoaPods进行管理,也可以选择手动引入的方式来集成SDK。可以在如下网址下载到最新版的SDK:
需要注意,如果采用了手动的方式引入SDK,需要在工程的Targets->BuildSettings->Other Linker Flags中添加-Objc参数,并且添加如下系统依赖库:
CoreTelephony.framework
libz.tbd
libsqlite.tbd
SystemConfiguration.framework
在工程中集成好了SDK后,我们还需要做一些简单的配置,首先需要在友盟后台创建应用程序,并在应用设置页面中获取到APP KEY参数,如下图所示:
这个APP KEY参数在进行SDK的初始化时会使用到。在友盟应用后台的Deeplink配置页面中,我们需要将应用的一些Scheme信息进行配置,如下图:
之后,我们便可以通过创建营销活动来使用智能超链的功能了,首先在友盟后台进行营销活动的创建,页面如下图:
可以看到,在创建营销活动时,可以配置活动名称、活动描述、应用内跳转的路径以及相关参数,当用户通过此营销活动的链接唤醒应用程序时,我们可以根据这些参数来让应用程序定位到指令的页面,从而实现业务的无缝衔接。创建好了营销活动后,在此活动的详情页面即可获取到LinkID,在网页中我们使用此LinkID来唤醒应用。