什么是Universal Links?
在iOS9之前,对于从各种从浏览器、Safari中唤醒APP的需求,我们通常只能使用scheme。但是这种方式需要提前判断系统中是否安装了能够响应此scheme的app,并且这种方式在微信中是被禁用了的。
Universal Links是iOS9推出的一项功能,使你的应用可以通过传统的HTTP链接来启动APP(如果iOS设备上已经安装了你的app,不管在微信里还是在哪里), 或者打开网页(iOS设备上没有安装你的app)。
下面简单说下怎么使用Universal Links,具体的可以看官方的说明文档
怎么使用Universal Links
1.先决条件:你必须有一个域名,且这个域名需要支持https。
2.需要在开发者中心做配置:找到对应的App ID,在Application Services列表里有Associated Domains一条,把它变为Enabled就可以了。
3.打开工程配置中的Associated Domains,在其中的Domains中填入你想支持的域名,必须以applinks:为前缀。
4.创建一个json格式的文件,苹果将会在合适的时候,从我们在项目中填入的域名请求这个文件。这个文件名必须为apple-app-site-association,没有后缀名:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "9JA89QQLNQ.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}
说明:
appID:组成方式是 teamId.yourapp’s bundle identifier。如上面的 9JA89QQLNQ就是teamId。登陆开发者中心,在Account - Membership里面可以找到Team ID。
paths:设定你的app支持的路径列表,只有这些指定的路径的链接,才能被app所处理。星号的写法代表了可识别域名下所有链接。
这篇博客里有很多其他公司的例子,可以参考一下。
5.上传该文件到你的域名所对应的根目录或者.well-known
目录下,这是为了苹果能获取到你上传的文件。上传完后,自己先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件。
验证
在iOS设备中的备忘录中输入App能识别的链接,然后直接点击此链接,就会直接跳转到你的app了。或是长按,在出现的弹出菜单中第二项是在’XXX’中打开
,这也代表着成功:
或是你将要测试的网址在safari中打开,在出现的网页上方下滑,可以看到有在”XX”应用中打开
:
在微信的网页浏览器中也是可以的,虽然微信屏蔽了所有的scheme方式跳转到其它app,但是Universal Links是由系统直接处理的,微信屏蔽不了,这也就实现了从微信跳转到我们的app。
苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,进入验证网址进行验证:
进入app后的处理
现在用户点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的 AppDelegate 里实现方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
{
NSURL *url = userActivity.webpageURL;
if (url是我们希望处理的)
{
//进行我们的处理
}
else
{
[[UIApplication sharedApplication] openURL:url];
}
}
return YES;
}
好了先说到这里,如果遇到什么问题可以详细看官方的说明文档。
相关推荐
在iOS开发中,Universal Link是一种链接技术,允许用户点击一个链接后直接在应用程序内打开,而不是被引导到Safari浏览器。然而,在某些情况下,我们可能希望在WKWebView中阻止Universal Link的直接跳转,比如为了...
iOS 通用链接(Universal Link)配置 什么是通用链接? 通用链接是iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app...
Universal Links如何在Universal Link的跳转过程中处理参数(解决方案).md
+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink; 其中 universalLink 微信开发者Universal Link 所以更细之后 友盟和shareSDK 等三方登录托管平台都需要相关的配置 参考:微信官网...
Universal Links如何在Universal Link的跳转过程中处理数据(解决方案).md
Universal Links如何在Universal Link的跳转过程中处理错误(解决方案).md
Universal Links如何在Universal Link的跳转过程中进行日志记录(解决方案).md
上传完后,先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件代码中的相关支
随着时间的推移,微博iOS SDK不断更新,增加了新功能,例如支持短信注册、私信分享、IPv6-only、多图分享、视频分享到微博Story、UniversalLink分享跳转、支持分享超话和LivePhoto等。同时,对SDK进行了性能优化,...
通用文件共享站点的链接检查器。 像快速共享、超级上传、轻松共享、存入文件等等! 由 P30TiP.COM 编写和设计
在 iOS 中,deep linking 实际上包括 URL Scheme、Universal Link、notification 或者 3D Touch 等 URL 跳转方式。应用场景比如常见的通知,社交分享,支付,或者在 webView 中点击特定链接在 app 中打开并跳转到...
每个Universal Link是一个标准的HTTP/HTTPS URL,当用户点击这个链接时,如果设备上安装了对应的应用,那么用户会被直接带到应用内,而不是在Safari中打开网页。实现Universal Links需要在你的App的Apple App Site ...
比如,如果你在Safari中点击一个微信的Universal Link,如果已安装微信,它将直接打开微信;如果没有,用户会被带到微信的网页版。 3. 深链接(Deep Links):深链接是通用链接的一个扩展,它不仅可以打开应用,还...
配置文件 文件名:apple-app-site-association { applinks:{ apps:[], details:[ { appID:teamID.bundleID, paths:[*] } ] } } paths说明: 填写:”/customer/” 当用户点击网址”你的域名/customer/list...
724 Link Command Usage for Flow Control, Error Recovery, and Power Management7-15 7241 Header Packet Flow Control and Error Recovery 7-15 72411 Initialization7-15 72412 General Rules of LGOOD_n and ...
而在iOS上,通常使用的是通用链接(universal link)或特定的URL Scheme。对于百度地图而言,Android使用的是`bdapp://`前缀的URL Scheme,而iOS平台使用的则是`baidumap://`。 文档中介绍的方法是如何在用户点击导航...
USB3320C是一款高度集成的全功能高速USB 2.0 ULPI(Universal Link Port Interface)收发器,专为需要高速USB连接同时又需节省电路板空间、降低功耗的应用而设计。该器件支持多种功能,如电池充电、音频传输、USB...