[iOS初级教程之二]DeepLink实践

简介: [iOS初级教程之二]DeepLink实践

一、唤醒iOS应用程序的几种方式


     唤醒应用是iOS开发中常见的技术,应用唤醒的方式有多种,概括下来,可以分为如下几类:


直接打开App

通知唤醒

scheme唤醒

Universal Links唤醒

     直接打开App是最直接的唤醒应用程序的方式,以iPhone为例,可以从主屏幕、搜索推荐、应用库等场景中进行打开。


     

image.pngimage.png

     当用户收到通知消息时,点击通知栏的通知消息也可以唤醒应用程序,通知分为本地通知和远程通知两种,从唤醒应用程序的作用上来说,这两种通知的逻辑是一致的。下面代码示例了发送本地通知:


- (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,添加方法如下图所示:


image.png


上面我们定义了一个URL Scheme为deeplinkdemo,我们可以直接在浏览器中使用deeplinkdemo://开头的链接来唤醒此应用程序。


     Universal Link是一种更加强大的唤醒应用程序的方式,相关介绍官网如下:


https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html


Universal Link是iOS 9之后新增的应用跳转功能,其可以无缝的连接网站与App,不需通过浏览器做中转,即可以实现应用间的无缝切换。


     了解了上述的几种应用程序的唤醒方式,我们回到本教程的主题:DeepLink。DeepLink又称为深度超链,其是指应用以上技术进行应用程序的无缝调起、场景还原、营销唤醒等业务逻辑。下面,我们就介绍如何以友盟工具平台为基础来为应用程序接入智能超链功能。


二、U-Link SDK集成


     使用CocoaPods的方式来集成U-Link SDK非常方便,只需要在Podfile文件夹中添加如下依赖即可:


pod 'UMCommon'

pod 'UMDevice'

如果项目没有使用CocoaPods进行管理,也可以选择手动引入的方式来集成SDK。可以在如下网址下载到最新版的SDK:


https://developer.umeng.com/sdk/ios?acm=lb-zebra-609113-9110428.1003.4.8840408&scm=1003.4.lb-zebra-609113-9110428.OTHER_16059174649951_8840408


需要注意,如果采用了手动的方式引入SDK,需要在工程的Targets->BuildSettings->Other Linker Flags中添加-Objc参数,并且添加如下系统依赖库:


CoreTelephony.framework

libz.tbd      

libsqlite.tbd  

SystemConfiguration.framework


     在工程中集成好了SDK后,我们还需要做一些简单的配置,首先需要在友盟后台创建应用程序,并在应用设置页面中获取到APP KEY参数,如下图所示:


image.png


这个APP KEY参数在进行SDK的初始化时会使用到。在友盟应用后台的Deeplink配置页面中,我们需要将应用的一些Scheme信息进行配置,如下图:


image.png


之后,我们便可以通过创建营销活动来使用智能超链的功能了,首先在友盟后台进行营销活动的创建,页面如下图:


image.png


可以看到,在创建营销活动时,可以配置活动名称、活动描述、应用内跳转的路径以及相关参数,当用户通过此营销活动的链接唤醒应用程序时,我们可以根据这些参数来让应用程序定位到指令的页面,从而实现业务的无缝衔接。创建好了营销活动后,在此活动的详情页面即可获取到LinkID,在网页中我们使用此LinkID来唤醒应用。

目录
相关文章
|
6月前
|
iOS开发 开发者
【教程】苹果 iOS 证书制作教程
【教程】苹果 iOS 证书制作教程
|
6月前
|
缓存 编解码 测试技术
基于iOS平台的高效图片处理技术实践
【4月更文挑战第7天】 在移动应用开发领域,图片处理是一个常见且要求高性能的功能模块。特别是在iOS平台上,由于其封闭的生态系统和用户对流畅体验的高期待,开发者需采用高效的图片处理技术以满足应用的性能需求。本文将探讨一种针对iOS平台优化的图片处理流程,涉及图像加载、缓存策略、异步处理以及图形渲染等关键技术点,旨在为iOS应用提供一个低内存消耗、高效率的图片处理解决方案。
|
2月前
|
安全 Android开发 数据安全/隐私保护
探索安卓与iOS的安全性差异:技术深度分析与实践建议
本文旨在深入探讨并比较Android和iOS两大移动操作系统在安全性方面的不同之处。通过详细的技术分析,揭示两者在架构设计、权限管理、应用生态及更新机制等方面的安全特性。同时,针对这些差异提出针对性的实践建议,旨在为开发者和用户提供增强移动设备安全性的参考。
138 3
|
3月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
126 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
3月前
|
开发工具 数据安全/隐私保护 iOS开发
探索iOS应用开发的核心理念与实践
【8月更文挑战第23天】在数字时代的浪潮中,iOS应用开发不仅仅是技术的堆砌,更是一场关于创新、用户体验和持续改进的旅程。本文将深入探讨iOS应用开发的核心理念,从设计哲学到开发工具的选择,再到市场趋势的适应,旨在为开发者提供一条清晰的路径,帮助他们在不断变化的技术世界中保持竞争力和创新力。
|
3月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
4月前
|
移动开发 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性与编程实践
【7月更文挑战第8天】在移动开发的广阔天地中,安卓和iOS这两大操作系统各自占据着半壁江山。它们在用户界面设计、系统架构及开发工具上展现出截然不同的特色。本文将深入探讨这两个平台在技术实现和开发生态上的关键差异,并分享一些实用的开发技巧,旨在为跨平台开发者提供有价值的见解和建议。
|
5月前
|
iOS开发 开发者
ios证书申请最简单的教程
使用uniapp进行开发的时候,点击uniapp打包界面的教程,提示需要Mac电脑申请ios证书,但是手上没有mac电脑,几经周折,终于找到了不需要mac电脑生成ios证书的解决方案。今天将解决方案整理出来。
104 10
|
5月前
|
安全 IDE Android开发
探索Android与iOS开发的差异:平台特性与编程实践
【6月更文挑战第17天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据半壁江山。它们在用户群体、系统架构以及开发环境上的差异,为开发者带来了不同的挑战和机遇。本文深入探讨了这两个平台在技术实现、界面设计、性能优化等方面的主要区别,并提供了实用的开发建议,旨在帮助开发者更好地理解各自平台的特性,从而创造出更加优秀的移动应用。
|
6月前
|
iOS开发 开发者 UED
iOS 中的并发编程:GCD 与 Operation 的对比与实践
【4月更文挑战第23天】 在iOS开发中,为了提高应用的性能和响应能力,理解并合理运用并发编程是至关重要的。本文将深入探讨两种主要的并发模式:Grand Central Dispatch (GCD) 和 NSOperation。我们将比较它们的优势和局限性,并通过代码示例演示如何在实际场景中应用这两种技术来优化应用性能。文章旨在为开发者提供一个清晰的指南,以便在选择适合自己项目的并发工具时做出明智的决策。