IOS Universal Link (通用链接)配置和使用

        Universal Link 是 iOS9 推出的一项功能,使你的应用(微信,微博等)可以通过传统的HTTPS链接来启动APP,而不是使用 scheme 的方式。
       如何理解Universal Link(通用链接)
       Universal Link(通用链接):看起来就是一条普通的https链接,当然是我们在该链接域名根目录配置过的一个链接,也可以在该链接中放置对应的H5页面。当用户的点击该链接,只要手机中安装了支持该链接的APP就会直接进入到APP中。如果没有安装APP则会跳转到Safari浏览器中,展示H5页面。对用户来说则是一个无缝跳转的过程。
       Universal Link(通用链接)的应用场景

使用Universal Link(通用链接)可以让用户在Safari浏览器或者其他APP的webview中拉起相应的APP,也可以在APP中使用相应的功能,从而来把用户引流到APP中。比如淘宝当在Safari浏览器中进入淘宝网页点击打开APP则会使用Universal Link(通用链接)来拉起淘宝APP。
微信支付和微信分享等和微信相关的都已经使用了Universal Link进行跳转,这可能是一个趋势,我们必须了解该技术.
开始配置Unuversal Links:
一.在苹果开发者中心配置 Associated Domains
1.Certificates, Identifiers Profiles
2.Identifiers
3.勾选 Associated Domains (AppID在开发中心创建之初是默认勾选支持Associated Domains了的。如果你没有勾选,在你更改为支持Associated Domains之后你需要重新下载描述文件并导入,因为描述文件是关联了AppID的)
请添加图片描述
二.配置JSON文件
我们需要配置一个JSON文件,此为关键步骤.
创建一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名,不能包含后缀名)。这里建议让后台人员或者运维工程师在其本地创建,避免文件传输时,文件自动被更改格式、后缀自动添加等问题。
文件里面的内容如下

     {
                "applinks": {
                "apps": [],
                "details": [
                {
                   "appID": "xxxxxxx.bbbbbb",
                   "paths": [ "*" ]
               }
        ]
    }
}

说明:1.xxxxxxx表示苹果账号的团队ID,苹果的团队ID去你自己的开发者中心复制(TeamID 可以从开发者中心 -> Membership 中获 取)。
2.bbbbbb表示项目的BundleID。
3.这个JSON文件中的appID其实由你的团队ID(TeamID)和BundleID拼接而成.
4.paths:设定你的app支持的路径列表,只有这些指定的路径的链接,才能被app所处理。星号代表了可识别域名下所有链接,一般是使用的星号,星号为通配符号.
5.apps:是限制只能在这几个app中使用, 基本是不填写,所以是空数组.
6.paths除了[ “" ]这样设置,也还可以加一个斜杠,这是为了处理一些问题,如写成这样"paths": ["/”]
PS : 据说可先配置微信开放平台和QQ互联平台,我当时没有这样做过,是先调试通了通用链接再去申请的微信平台,时间紧的网友可以一试,如果被微信拒绝了别来找我,成功了请在下面留个言,谢谢~
如果上传人员给你的访问路径是:
https://www.baidu.com/.well-known/apple-app-site-association 或
https://www.baidu.com/apple-app-site-association则:
微信开放平台的Universal Link填写是:https://www.baidu.com/app/
QQ互联平台的Universal Link填写是:https://www.baidu.com/qq_conn/22222222/ ("/qq_conn/22222222/*"需要根据QQ互联平台设置,22222222是QQ互联后台对应应用的APPID。)
三.上传JSON文件
配置好了文件,就让运维人员将文件上传到域名所对应的根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。上传完后,让上传人员给你一个访问路径,先访问一下,看看是否能够获取到。其实现在已经建议上传到.well-known目录下了,上传人员给你的访问地址你在PC端的浏览器或者手机的Safari浏览器访问,会提示下载该文件,你点击同意下载,下载下来是你的那个文件内容,并且内容没有乱码,说明正确,不行要重新检查上传。
四.在Xcode开发工具配置Associated Domains
在其中的Domains中填入你想支持的域名,必须以applinks:为前缀,如:applinks:domain
如果上传人员给你的访问路径是:
https://www.baidu.com/.well-known/apple-app-site-association 或
https://www.baidu.com/apple-app-site-association
则Domains中填入:applinks:www.baidu.com
配置好后run起来。
请添加图片描述
这里你可以看到,这个Associated Domains是可以添加多个的。
五.验证我们的通用链接是否生效
1.使用我们的苹果手机备忘录。先在Xcode中配置好了Associated Domains,苹果开发者中心也配置好,导入描述文件,然后将App安装到你的手机真机上。最后在你的手机真机的备忘录中输入你的链接,点击你备忘录中的链接能直接打开你手机上的App,或者长按备忘录的链接,出现“在“xxxx”中打开”对话框,点击对话框也可以打开你的App即为成功.
请添加图片描述

2.使用iPhone的Safari浏览器。在浏览器中输入链接,输入过后,往下滑,顶部会出现“提示条”,提示“在“xxxxx”App中打开”,然后点击右侧的“打开”,如果能打开你的App,即为成功.

这里发生过一个小事故,我在Safari浏览器中输入链接的时候,往下拉一直不出现此提示条,就很纳闷。虽然上面的几个链接在备忘录中都可以打开我们的App,但是在浏览器中不都是可以出现提示条的。经过我不断的尝试我在https://class.xxxx.com/app/输入浏览器才出现提示条,也就是我在后面加了一个"/app/",才出现提示条,这可能和后台或者运维的配置有关,网上的其他通用链接教程,是没有我这一步的,也没有遇见谁提及到了此处.
请添加图片描述
3.使用苹果官方的检测通用链接的网址.地址是:https://search.developer.apple.com/appsearch-validation-tool/
这玩意其实是有点坑的,你将你的链接输入进去,不报红就可以了。检测的到的话,会出来你App的名字,logo图标啥的,我之前的App可以检查到,新编写的项目死活检查不到,还以为哪里搞错了,结果硬着头皮申请了微信分享,测试,上架AppStore过后,结果还是检查不到,但是功能都是完全正常的,卡在这里卡了好久,一直检测不到,你说坑不坑.
六.代码. 跳转回 APP 的处理
当点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的实现AppDelegate里对应的方法.上述配置和验证工作都完成过后,在Appdelegate中注入相关代码

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSString *urlStr = userActivity.webpageURL.absoluteString;
        if ([urlStr isEqualToString:@"https://class.xxxxxxxx.com/app/apple-app-site-association"]) {//这里好像也可以使用链接的其他写法比如:class.xxxxxxxx.com这样就行,没有实验过.
            return  YES;
        }
    }
    return [self UMApplication:application continueUserActivity:userActivity restorationHandler:restorationHandler];// 这里其实是我封装了友盟的相关东西.
    
}

七.注意事项
注意事项我只是总结了我遇到的问题,欢迎大家补充.
1.手机上必须安装你需要跳转的应用并配置Associated Domains,才能验证成功.
2.Universal Link必须要求跨域,如果不跨域,就不会跳转(iOS 9.2之后的改动).
3.服务器上apple-app-site-association的更新不会让iOS本地的apple-app-site-association同步更新,即iOS只会在App第一次启动时请求一次,以后除非App更新或重新安装,否则不会在每次打开时请求apple-app-site-association
4.只有当前webview的URL域名,与跳转目标URL域名不一致时,Universal Link(通用链接)才生效。
5.域名必须需要为可以访问的,必须使用https://有效证书托管文件,并且没有重定向.
6.域名最好不要与 app 接口域名一样,这与微信分享有关.
7.文件的URL应符合以下格式:https:///.well-know/apple-app-site-association

八.微信的要求
说白了,现在的通用链接都是给鹅厂产品搞的,比如微信和QQ,贼烦.

1.Universal Links必须支持https
2.Universal Links配置的paths不能带query参数
3.微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符**/*** (这一条来自其他教程,没有实验过,不过我在做微信分享的时候通用链接是以"/app/“结尾的,JSON文件是”/*"作为的paths值,原作者可能表达的是这个意思)

下面这张图是微信官方申请的时候要求截图:请添加图片描述

4.通用链接代替了原白名单式的跳转方式,但是微信还是要求了我们配置了白名单,相当于两者都配置了。不理解其意。

5.如果要做微信分享啥的,加上这个吧.
请添加图片描述
当然info下面的URL Types你还是要搞的。
请添加图片描述

6.首先配置文件apple-app-site-association 不可以用MAC的文本编辑来编辑,后边再去除后缀.rtf并不可行 依然打不到目的。
QQ验证会报错:应用的Universal Link配置中不含互联信息 [errcode:1001:0]

使用Windows的记事本来编辑 微信可以成功设置,但是QQ依然会报错:
JSON 文件格式错误,请去掉 BOM 头 [errcode:1001:0]

所以最好是运维人员来配置这个文件。

解决方案:
使用VS Code新建文件-直接编辑代码-文件-另存为:

请添加图片描述

一定要选无扩展,然后文件放在域名根目录,这样QQ互联验证就成功了。

好的,问题是小细节有点多

forzhouwei
关注 关注
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
iOS通用链接UniversalLink配置详细流程
BianHuanShiZhe的专栏
07-09 2578
如果 Universal Link 配置成功,在iOS自带Safari浏览器中,打开 Universal Link 链接,下拉会出现应用入口,点击“打开”可以跳转至原生App;paths:是一个支持的路径列表字符串数组,可以是一个也可以是多个,用于过滤可以跳转到App的链接,支持通配符*,通配符表示允许该域名下的任意路径。是由开发者自定义的,没有限制,任何App都可以用同一个名字,有些钓鱼App可以 设置知名的APP 的URL Scheme 来欺骗用户。如果一个域名下面有多端APP,可写作。
iOS通用链接简易配置,迅速解决“universal link 校验不通过”问题!
Tuzk11的博客
08-03 7595
对于需要使用微信支付等功能的APP来说,对接微信提供的openSDK是不可缺少的一环。随着苹果iOS 13系统版本的安全升级,为此openSDK在1.8.6版本进行了适配。1.8.6之后的openSDK需要支持Universal Links(通用链接)跳转,否则会出现“微信登录失败,universal link 校验不通过”的错误信息。 对于通过链接的介绍和接入方式,这里不再赘述,具体步骤可以参考各大论坛下的接入教程。 大致来说,配置通用链接需要客户端和服务端相...
iOS 通用链接Universal Link配置详解
08-25
主要介绍了iOS 通用链接Universal Link配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
iOS 通用链接配置Universal Links)
马小撂的博客
11-28 2000
iOS Universal Links 通用链接配置
iOS 唤起APP之Universal Link(通用链接)
最新发布
zzhongcy的专栏
09-20 578
网上看到这篇关于IOS Universal Link的文章,很不错,这里分享一下。iOS 唤起APP之Universal Link(通用链接) - Code.Rookie - 博客园 (通用链接)是Apple在iOS9推出的一种能够方便的通过传统链接来启动APP的功能,可以使用相同的网址打开网址和APP。当你的应用支持(通用链接),当用户点击一个链接是可以跳转到你的网站并获得无缝重定向到对应的APP,且不需要通过浏览器。如果你的应用不支持的话,则会在中打开该链接。 在苹果开发者中可以看到对它的介
UniversalLink通用链接
long458的专栏
01-02 1万+
什么是Universal Link iOS9 新引入的一个功能,是通过传统HTTP链接来启动App的技术,可以使用相同的网址打开网站和App。通过唯一的网址,就可以链接到App中具体的视图,不需要特殊的scheme。如果用户没有安装App则链接到对应的普通网页。无缝连接Web-App ,备忘录-App,信息-App之间的跳转。(在iOS 9以前,我们从外部启动App都是通过URL Scheme实
iOS Universal Links 配置
lyh1083908486的博客
06-09 2155
Universal Links 通用链接,我的理解就是通过点击这个链接,能够打开应用,还可以根据配置的路径和参数跳转到App内指定页面和传递参数。我们做微信QQ登录分享时会要求配置这个链接。网上有很多文章介绍了如何配置,但是每次随便搜一篇来照着操作,总是会遇到问题,算了还是自己花点时间记录一下吧!这里记录一下参考的文档,大家也可以直接移步过去,记录的原因主要是万一以后我文章的步骤过时啦,就可以去这几个官方的地方瞅瞅!工具域名:假设我们的域名是 example.com。
iOS Universal link 配置
u013712343的博客
02-24 1672
iOS Universal link 配置
iOS Universal Links(通用链接)
weixin_43780786的博客
12-03 3655
iOS Universal Links(通用链接) 最近项目中,微信SDK针对 iOS 13系统版本安全性,进行了对应升级,微信SDK版本为openSDK(1.8.6)。在微信官方介绍中,1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。 本篇文章中,相关配置: 项目 BundleID:com.test123.www Universal Links :...
ios Universal Link 配置教程 + 踩坑记录
热门推荐
jifaliwo123的博客
10-20 2万+
Univeral Link配置有3方面:Apple Developer网站配置、XCode配置、服务器资源配置 一、Apple Developer网站配置 项目的App ID 需要开通Associated Domains。 【操作】:(1)登录Apple Developer网站(Sign In - Apple),点开Identifiers一栏,找到我们项目的App ID。点击这个APP ID,进入APP ID设置页面。 (2)在APP ID的设置页面,勾选Associated Doma...
配置应用Universal Links - iOS
survivorsfyh的博客
12-10 2218
Universal LinkiOS 9 之后 Apple 推出的一种新的启动 App 功能特性;可以方便的通过打开一个 Https 链接的方式来启动唤起所对应的 App 应用客户端(设备未安装 App 的无效);可以通过页面的网站 url 与 App 做到完美的衔接,比之前 URL Scheme 的方式更佳高效,起到 Web 与 App 间的无缝衔接. 微信官方文档 首先,生成一个配置文件并命名为 apple-app-site-association,具体格式如下: appID 组成方式即 Te
iOS Universal Links配置
weixin_42580612的博客
12-19 1542
iOS Universal Links u-link
通用链接-Universal Link
风·之痕的博客
04-24 6009
前言 通用链接与URL Scheme的用途类似,主要是实现从外部唤醒App,并执行某些操作(如:打开指定页面)。 由于使用URL Scheme(wechat://path?quary)从当前App唤醒自己的应用时,需要添加应用的URL Scheme到当前App的白名单中,限制该方法的灵活性,使用Universal link刚好可以解决这样的问题 (https://域名/path)。 应用 链接必须是https协议,且在webView打开链接时为跨域的方式(与当前域名不同),才会被作为通用链接唤起。
iOS 配置通用链接(Universal Link)服务端和开发者后台都配置好了,还是跳转不到App
IT_Scratch的博客
10-23 1万+
Universal Link 是苹果在 WWDC 2015 上提出的 iOS 9 的新特性之一。此特性类似于深层链接,并能够方便地通过打开一个 Https 链接来直接启动您的客户端应用(手机有安装 App)。对比以往所使用的 URLSheme,这种新特性在实现 web-app 的无缝链接时,能够提供极佳的用户体验。使用前请阅读苹果官方文档 - Support Universal Links。
Universal Links配置----------小白的天堂
Mr.wang的博客
11-23 1542
在桌面或者编辑器中新建一个文件,取名‘apple-app-site-association’,去掉后缀 填充内容: { "applinks": { "apps": [], "details": [ { "appID": "TeamID.BundleId", "paths": [ "*" ] //添加QQ 互联: ["*","/qq_conn/124918541/"] .
通用链接Universal Link)—微信SDK
m0_46479005的博客
09-29 1809
通用链接Universal Link)—微信SDK 什么是通用链接Universal Link通用链接Universal Link)是苹果在iOS9推出的一种能够方便的通过传统Https链接应用程序内部或更高版本中的网站上的内容。当你的应用支持通用链接时,用户点击一个链接是可以跳转到你的网站并获得无缝重定向到对应的APP上,是不需要通过Safari浏览器。如果你的应用不支持的话,则会在Safari中打开该链接。其特点有以下几点: 独特。与自定义URL方案不同,其他应用程序不能声明通用链接,因为
Universal links 使用
qq_36724920的博客
11-28 779
从外部跳转到APP内部有两种方式 1、Universal Links 2、schema 一、Universal Links tips: 这个文章是给已经创建有现成的app的开发者看的,如果没有创建app,请先去创建app。 工作原理: 在安装某个app的时候,iOS系统会检查App bundle中的Info.plist文件。如果发现有associated domain字段...
iOS分享到微信配置Universal Links,并从微信打开app,跳转到指定界面
zhaofahseng的博客
06-25 2573
需要替换为你自己的域名)。浏览器打开后,会看到我们刚才配置的apple-app-site-association文件内容,如果不能,则需要查看文件目录是否正确,网络是否支持外网,服务器是否拦截。iOS分享到微信之后,需要从微信浏览器直接打开app,跳转到指定界面,这个时候最主要的就是分以下几步(微信sdk集成就不说了)Associated Domains可以设置多个,格式是:applinks: + 服务器域名(域名即可,例如完整链接是。* 表示通用链接,即只要域名正确,可以直接命中,一般不建议直接使用
ios wkwebview. universallink
01-13
WKWebView是iOS中一个强大的网页加载工具,它可以加载并展示网页内容,并支持与JavaScript的交互。Universal Link是一种苹果公司提供的功能,可以让用户直接跳转至特定App内的内容,而无需经过网页的跳转。 在iOS中,我们可以通过WKWebView来加载包含Universal Link的网页,当用户点击包含Universal Link的内容时,系统会自动识别这个链接,并将用户直接跳转至特定App内的对应内容,而无需再通过网页打开App来展示内容。 对于开发者来说,他们需要在自己的App中配置支持Universal Link,并在Xcode中进行相应的设置。然后,他们可以通过WKWebView来加载包含Universal Link的网页并展示给用户,以便用户可以通过点击链接直接进入特定的App内的内容。 除此之外,WKWebView还提供了一些方法和属性来监控网页加载状态、处理用户与网页的交互等功能,使得开发者可以更加灵活地控制用户与网页的交互体验。 总的来说,iOS的WKWebView和Universal Link的结合使用,可以为开发者提供更便捷的方式来实现App内外的内容跳转,并为用户带来更流畅的体验。
写文章

热门文章

  • IOS UITableView的展开与收缩、折叠功能 12967
  • IOS UITableViewCell高度自适应的那些事 11594
  • IOS Xib自动布局 11147
  • IOS Universal Link (通用链接)配置和使用 10627
  • Mac Android Studio更新gradle 9546

最新评论

  • Swift 多个Target环境配置

    Andy__M: Podfile 也可以这样配置 以达到简化配置: def common_pods pod 'SnapKit' end target 'AAA' do common_pods pod 'aaa' end target 'BBB' do common_pods end

  • IOS Universal Link (通用链接)配置和使用

    今年第一次改BUG: 新浪微博的Universal Link填写是:

  • Swift 多个Target环境配置

    Cdf(人名): 好文章,学习了

  • Mac Android Studio更新gradle

    Guoozx: 你是真的皮

  • Mac Android Studio更新gradle

    PoemrainMa: 你是真的皮

最新文章

  • iOS OC与JS交互实战
  • iOS 友盟分享总结
  • Swift 多个Target环境配置
2021年5篇
2020年1篇
2018年8篇
2017年4篇
2016年6篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家江苏玻璃钢酒店人物雕塑玻璃钢广场海豚摆件雕塑玻璃钢莲藕形象卡通娃娃雕塑商场关于酒水的美陈该怎样做玻璃钢卡通雕塑设计价位新乡玻璃钢浮雕广场不锈钢雕塑玻璃钢泡沫雕塑定制包头玻璃钢雕塑定做郑州户外玻璃钢雕塑平凉人物玻璃钢雕塑厂家河北玻璃钢雕塑方案江苏季节性商场美陈有哪些玻璃钢雕塑两毡一部什么意思成都玻璃钢雕塑摆件销售公司山西商场美陈报价西安玻璃钢雕塑厂设计杭州环保玻璃钢雕塑日照动物玻璃钢雕塑价格湛江玻璃钢雕塑包括哪些贵阳玻璃钢仿生雕塑苏州创意玻璃钢雕塑商场美陈制作费税率海南园林景观玻璃钢雕塑平凉广场玻璃钢雕塑设计玻璃钢红军雕塑公司在哪里青岛商场主题创意商业美陈东方玻璃钢雕塑厂家询问报价沈阳玻璃钢小品雕塑临汾玻璃钢人物雕塑厂家合川玻璃钢仿铜雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化