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

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

三、Deeplink调试与参数接收


     创建好了营销活动也集成完成了SDK,下面我们可以尝试通过一个简单的HTML DEMO来调试智能超链。HTML示例代码如下:


<!DOCTYPE html>

<html>

<head>

<title>Demo</title>

<meta charset="utf-8" />

<script src="https://g.alicdn.com/jssdk/u-link/index.min.js"></script>

</head>

<body>

<div>

 <h1>测试DeepLink跳转</h1>

 <button id="btn1">唤起 App</button>

</div>

</body>


<script type="text/javascript">

ULink.start({

 id: 'usr1ffnv829fu02h', /* 平台为每个应用分配的方案link ID,必填 */

 data: {

  custom:"customn1",

  custom2:"custom2"

 } /* 自定义参数,选填 */

}).ready(function(ctx) { /* 初始化完成的回调函数 */

 document.getElementById('btn1').onclick = function(e){

   ctx.wakeup(); /* 用户点击某个按钮时启动app */

};

});


</script>


<style type="text/css">

div {

 text-align: center;

}

button {

 font-size: 60px;

}

h1 {

 font-size: 60px;

}

</style>

</html>

如上代码所示,u-link是友盟智能超链在JavaScript端的SDK,调用ULink的start方法时,配置的对象id就是我们创建的营销活动的id,通过这种方式唤醒应用程序会自动将后台配置的参数传递过去,同时我们也可以在data中定义更多动态参数进行传递。


     对于Xcode工程,在应用启动是首先需要对U-Link的SDK进行初始化操作,如下:


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

   [UMConfigure initWithAppkey:@"602505af668f9e17b8aef059" channel:nil];

   return YES;

}

之后实现如下几个AppDelegate的回调来处理超链:


#import "AppDelegate.h"

#import <UMCommon/UMConfigure.h>

#import <UMCommon/MobClickLink.h>


@interface AppDelegate ()<MobClickLinkDelegate>


@end


@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

   [UMConfigure initWithAppkey:@"602505af668f9e17b8aef059" channel:nil];

   return YES;

}


- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

   return [MobClickLink handleLinkURL:url delegate:self];

}


- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

   return [MobClickLink handleLinkURL:url delegate:self];

}


- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {

   return [MobClickLink handleUniversalLink:userActivity delegate:self];

}


// 解析后的回调函数,这里可以拿到所有的参数与跳转路径信息

- (void)getLinkPath:(NSString *)path params:(NSDictionary *)params {

   NSLog(@"getLinkPath:%@, %@", path, params);

}



@end

需要注意,如果是新版Xcode创建的应用程序,需要在SceneDelegate类中实现上面的方法。

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