iOS Universal Link 简介
一、什么是Universal Link
Universal Link
(通用链接)是什么,相信iOS开发的同学一定对这个东西非常熟悉。这是Apple在iOS9推出的一种能通过HTTPS
链接直接启动手机APP(手机有安装APP的情况)的链接。当你的应用支持Universal Link
(通用链接),在用户点击一个链接时可以跳转到你的网站并获得无缝重定向到对应的APP,且不需要通过Safari浏览器。如果你的应用不支持的话,则会在Safari中打开该链接。在苹果开发者中可以看到对它的介绍是:
Seamlessly link to content inside your app, or on your website in iOS 9 or later. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device.
二、什么是URL Scheme
说起Universal Link
,我们不由就会想起URL Scheme
,在Universal Link
出来之前iOS这边使用的一直都是URL Scheme
进行APP之间的跳转,当然在Safari
中也可以通过scheme://
跳转APP。但是每次跳转之前都会弹出系统级提示,询问是否打开,如果设备中没有安装此App则会直接弹出错误提示,体验不友好。熟悉iOS开发的同学也肯定对这个东西不陌生。
三、Universal Link的优点
Universal Link
(通用链接):看起来就是一条普通的https
链接,当然是我们在该链接域名根目录配置过的一个链接,也可以在该链接中放置对应的H5页面。当用户的点击该链接,只要手机中安装了支持该链接的APP就会直接进入到APP中。如果没有安装APP则会跳转到Safari浏览器中,展示H5页面。对用户来说则是一个无缝跳转的过程。
使用Universal Link
(通用链接)可以让用户在Safari浏览器或者其他APP的webview
中拉起相应的APP,也可以在APP中使用相应的功能,从而来把用户引流到APP中。比如淘宝当在Safari浏览器中进入淘宝网页点击打开APP则会使用Universal Link
(通用链接)来拉起淘宝APP。
相比于URL Scheme
,Universal Link
的优点有:
- 灵活性:即使未安装APP,
Universal Link
也可以正常使用,网页可以显示跳转AppStore下载的引导,进一步地提升用户体验。 - 安全性:开发者在自己的网站域名配置了
apple-app-site-association
,才能通过对应的域名调起APP。另外域名必须支持HTTPS
。 - 隐私性:在iOS9之前,基于
URL Scheme
,大家可以判断手机是否安装某APP。并且可以随便根据URL Scheme
打开其他APP,像以前之前可以打开微信的扫一扫等各种功能。使用Universal Link
就不会被其他恶意开发者随便跳转打开你的APP具体页面。 - 通用性:一个URL对你的网站和App都通用,
Universal Links
是标准的URL格式,而自定义URL Scheme
可能理解为特殊URL
方案,默认只有你的App能解析,浏览器无法解析。
四、如何配置Universal Link
1.创建配置文件
创建一个名字叫做apple-app-site-association
,包含固定格式的json文件内容如下:
{"applinks": {"apps": [],"details": [{"appID": "9JA89QQLNQ.com.apple.wwdc","paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]},{"appID": "ABCD1234.com.apple.wwdc","paths": [ "*" ]}]}
}
注意:文件名必须为apple-app-site-association,不能带json后缀。
appID
为teamID.BundleID
,path
是设置哪些路径可以唤起APP。
2.Xcode工程配置
在项目的Capablities
中开启Associated domains
,一定要按照applinks:域名的格式填写。
3.服务器配置
将apple-app-site-association
文件上传到服务器这个需要后端开发配合完成,将这个文件放到服务器的根目录下或者放到.well-known
目录下。
4.验证Universal Links配置是否成功
如果已经配置过Universal Links
,那么在用户第一次安装app时,苹果会发送一个请求,请求你服务器上的apple-app-site-association
文件。
请求apple-app-site-association
文件成功之后,用户就可以使用Universal Links
唤醒app了。测试的咱们最好把应用删了重新装,确保苹果会发请求。
验证方式:
直接将https: //http://app.mytest.com/SystemCalendar
复制到Safari打开,记得下拉一下看看会不会出现APP的跳转栏,像下面这样就是成功了。
5.通过Universal Links跳到APP内,获取URL
通过universal link
打开APP之后,执行了下面方法,可以在下列方法中根据path
去做不同的操作,比如打开某个特定页面,做某个特定操作这些都是可以的。
func application(_application:UIApplication, continue userActivity:NSUserActivity, restorationHandler:@escaping([UIUserActivityRestoring]?) ->Void) ->Bool{return true
}
iOS Universal Link 简介相关推荐
- ios Universal Link 配置教程 + 踩坑记录
Univeral Link的配置有3方面:Apple Developer网站配置.XCode配置.服务器资源配置(apple-app-site-association文件创建和存放) 首先说下我们的需 ...
- 趣谈 iOS Universal Link
作者:iHTCboy 本文对 iOS Universal Link(通用链接)的浅入浅出介绍,从产品的角度来了解其发展历程. 1.了解 Universal Link 背后的故事 2.学习 Univer ...
- iOS Universal link 配置
1.在苹果开发者平台配置你应用的Universal Links 开通Associated Domains image 注意:重新设置之后,Profiles文件需要更新 2..制作相关证书配置文件 im ...
- H5通过Universal Link(通用链接)唤起app
问题:之前使用的通过网页打开app都是通过URL scheme打开app,但是我们在开发的过程中遇到过一个奇怪问题,本地的debug的时候都是可以正常打开的,但是打成安装包之后URL scheme没有 ...
- iOS微信授权登录中Universal Link(通用链接)的配置 ,解决ios13,ios14微信支付不走回调问题
这里写自定义目录标题 简介 Unuversal Links介绍 配置Unuversal Links 1.苹果开发者账号打开配置 2.XCode工程配置 3.配置JSON文件 4.后台服务器配置 5.微 ...
- Universal Link|iOS开发者不得不知的技术
1.Universal Link的使用场景 Universal Link是苹果在WWDC 2015上提出的iOS9的新特性之一.此特性类似于深层链接,并能够方便地通过打开一个Https链接来直接启动您 ...
- iOS 唤起APP之Universal Link(通用链接)
iOS 9之前,一直使用的是URL Schemes技术来从外部对App进行跳转,但是iOS系统中进行URL Schemes跳转的时候如果没有安装App,会提示Cannot open Page的提示,而 ...
- wap ios android,wap 唤起App 的两种方式Schema Universal Link
1.schema 现在线上大多数 App 使用的就是 schema 跳转,都对应一套路由法则,基本都能做到跳转到 App 内任一界面. location.href?=?'schema://xxxx' ...
- 关于iOS 解决微信SDK1.8.6 使用时“universal link校验不通过”问题
1.前言 最近对App 第三方库进行检查更新的时候,发现微信使用universal link 进行登录.分享等操作.然后一直遇到"universal link 校验不通过"的问题, ...
最新文章
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值
- React Native开发之必备React基础
- linux下svn客户端安装及环境配置
- php 菜谱 源码,基于php的菜谱大全api调用代码实例
- 关于android开发时,发生Error infalting classa com.baidu.mapapi.map.MapView的解决办法
- s5pv210——中断实战
- C#中gridView常用属性和技巧介绍
- 说说.NET中忽视的方法
- 8.性能之巅 洞悉系统、企业与云计算 --- 文件系统
- 转:开个小书店。。呵呵
- Web前端开发技术实验与实践(第3版)储久良编著实训5
- 【转】ACM各种WA的说明及可能的原因
- 抑郁症自测量表测试软件,抑郁症测试专业量表(SDS)
- 无法自动修复此计算机鼠标按不了机,win10系统罗技M558鼠标无法自动连接的修复方法...
- zabbix使用SNMP监控思科无线控制器WLC
- 单片机c语言的按键程序设计,单片机C语言程序设计:按键发音
- Lively Wallpaper 免费开源动画桌面壁纸,让您的桌面栩栩如生!
- 【论文翻译】Meta R-CNN : Towards General Solver for Instance-level Low-shot Learning
- 去除快捷方式上的小箭头
- SDP4模型推算卫星轨迹
热门文章
- linux 被肉鸡了,某Linux服务器被变成肉鸡的过程
- 在计算机栏显示桌面,直观:让win7在任务栏的左下角显示桌面_计算机的基本知识_IT /计算机_信息...
- 乐库网页播放器与动态切换图片新闻
- sublime text3 搭建c++/c环境
- 网商银行首席架构师余锋:网商银行的每一笔贷款都是AI贷款
- 【100%通过率】华为机试真题 Python 实现【对称美学】【2022.11 Q4 新题】
- 3.4 mov、add、sub指令
- Servlet API 详解(HttpServlet、HttpServletRequest、HttpServletResponse)
- ORACLE常用问题589例
- windows 上运行 sslocal 提示 libcrypto(OpenSSL) not found 解决办法