服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - iOS 通用链接(Universal Link)配置详解

iOS 通用链接(Universal Link)配置详解

2021-05-27 17:54June Villa IOS

这篇文章主要介绍了iOS 通用链接(Universal Link)配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ios 通用链接(universal link)配置

什么是通用链接?

通用链接是ios9推出的一项新功能,如果你的应用(app)支持通用链接(universal link)之后,ios用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用safari打开网页。在ios9以前,对于各种浏览器,safari中唤醒app的需求,我们通常是只能使用scheme的方式。

为什么要突然改用通用链接的配置方式?

我们的项目中唤起第三方app一般是通过配置对应的url scheme的方式使用的,微信sdk的最新版本opensdk1.8.6 由于苹果ios 13系统版本安全升级,为此opensdk在1.8.6版本进行了适配。 1.8.6版本支持universal links方式跳转,对opensdk分享进行合法性校验,提升使用过程中的安全性。

要求在注册微信appid时,必须要传入universallink,以前的方法在旧版本仍然可使用。所以就开始研究通用链接(universal link)的配置

?
1
2
3
4
5
6
7
8
9
10
11
@interface wxapi : nsobject
 
/*! @brief wxapi的成员函数,向微信终端程序注册第三方应用。
 *
 * 需要在每次启动第三方应用程序时调用。
 * @attention 请保证在主线程中调用此函数
 * @param appid 微信开发者id
 * @param universallink 微信开发者universal link
 * @return 成功返回yes,失败返回no。
 */
+ (bool)registerapp:(nsstring *)appid universallink:(nsstring *)universallin

如何配置通用链接?

1、创建json格式的一个空文件(取名必须为apple-app-site-association,并且没有后缀)

iOS 通用链接(Universal Link)配置详解

  • 这里的appid是指:teamid+bundleid的组成(例:9ja89qqlnq.com.apple.test)(teamid可以在开发者账号里面查看,bundleid是项目的bundle identifier)。
  • 这里的paths是指:是设置允许的路径列表,可以是一个也可以是多个,最简单的方式是使用“*”,通配符,表示允许该域名下的任意路径。(注意:paths中的大小写是敏感的,一定要一一对应)

2、上传apple-app-site-association文件(这里就能拿到app中配置需要的域名)

(1)将apple-app-site-association文件发给服务器端的同事,让他上传到域名的根目录下或者.well-known的子目录下(这里的域名必须要是可访问的域名,由服务器端的同事给到)。

(2)web server需要支持https,客户端通过https来访问,并且不支持重定向。

3、在app中处理通用链接

(1)添加对应的域名(上面知道的域名)到capabilities

iOS 通用链接(Universal Link)配置详解

在项目里面定位到capabilities,找到associated domains,点击允许按钮,在domains中添加对应的域名。(domains中的域名必须是使用applinks开头,然后输入自己的域名即可。注意:当app第一次启动之后,会自动从你自己的域名目录下下载这个apple-app-site-association文件。

注:这里可能会遇到一个错误就是你的app id中并没有允许使用associated domains,所以需要进入开发者中心,编辑app id允许associated domains,并且重新生成对应的签证文件并下载安装。在最新xcode11,添加了该项,开发者账号该appid下自动打开

iOS 通用链接(Universal Link)配置详解

(2)实现appdelegate里支持通用链接的实现方法

?
1
2
3
4
5
- (bool)application:(uiapplication *)application continueuseractivity:(nsuseractivity *)useractivity restorationhandler:(void (^)(nsarray<id<uiuseractivityrestoring>> * _nullable))restorationhandler {
    //自己的实现代码
    
  return [wxapi handleopenuniversallink:useractivity delegate:self];
}

这里如果是从旧版更新wechatopensdk1.8.6版本的话,需要在这个里面调用微信里的这个方法,并且在xcode中,选择你的工程设置项,选中“targets”一栏,在 “info”标签栏的“lsapplicationqueriesschemes“添加weixin和weixinulapi,可通过微信开放平台的接入文档步骤一步步进行修改或添加。

iOS 通用链接(Universal Link)配置详解

注:这里的weixinulapi注意大小写,我之前是添加了一个weixinulapi小写的进去,结果都注册失败,一直没找到原因,直到我调用微信打印log的方法,才知道是没添加到weixinulapi这个schemes,大小写没区分

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_44836266/article/details/101761139

延伸 · 阅读

精彩推荐
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25