从iOS9之后,苹果就推出了这个功能,用来唤醒外部app。这个功能在那些电商app上使用尤其广泛,当你打开对应的h5网页后,上面跳出一个是否跳转app的按钮。

  现在iOS11已经基本覆盖,iOS12也马上就要发布了,这算是一个很成熟的服务了,所以对接一下,也十分必要。

  在这个功能推出之前,iOS这边基本都用url scheme做app间的通信,这个功能在企鹅系应用中直接被屏蔽,在其他应用中使用的也不少。但是,这个会产生很多问题,应为url scheme不唯一,用户可以随便自定义这个url scheme。之前单位做应用的时候变碰到过这个问题,装了另外一个app之后,用urlscheme唤醒我的app的时候,唤醒了别的app,这个便是由于url scheme冲突造成的问题。unviersal links 由于域名的唯一性,便不会产生这个问题。

  下面我们来说一下具体对接过程

  1.在xcode中开启Associated Domians服务

  路径:Target->Capbilities->Associated Domians

  之前看有人说,需要先在开发者账号中开启这个服务,实际上你只要在工程中打开这个服务,然后build一下,开发者那边自动会开启这个服务。

  

  在domains里面添加你需要的链接。

  a.必须以applinks作为开头

  b.该链接的服务器必须支持ssl

  2.填写apple-app-site-association文件

  这是一个json格式的文件,但是文件名不能有后缀

  

  在这个文件里 可以配置多个appID,appID的格式为你该工程所在的team的teamID+你的工程ID-->>T1212JGF.com.xxx.xxx

  具体的可以在开发者账号的Account -> Membership -> Team ID 查看

  paths里面可以配置所有你需要响应的链接。

  比如你在applinks里配置了www.baidu.com,你现在需要打开www.baidu.com就能唤醒app,那你可以直接写''/*".

    你需要在某几个特定的链接下唤醒app,那就在paths里面填写你那特定的链接。paths里面可以填写多个链接

  3. 把apple-app-site-association文件传到applinks的根目录下。

  比如你applinks为www.baidu.com。那就将后台把这个文件传到这个目录下。当你访问www.baidu.com/apple-app-site-association这个链接的时候,能成功的下载这个文件,那就说明成功了。

  4.工程中配置

  在工程APPdelegate中添加对于该服务的响应代码,这里可以对该链接是否跳转进行控制。

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler{
if([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]){
NSURL *url = userActivity.webpageURL;
}
return YES;
}

  5. 测试

  在safari中打开对应的链接

  当你打开链接,然后下拉,出现该多出的页面,那么恭喜你,你成功了。点击打开按钮,你就能跳转到你需要的页面了。

iOS universallinks唤醒app的更多相关文章

  1. 通过JS唤醒app(安卓+ios)

    有需求说要通过页面按钮唤醒app,或者手机上没有这款app跳转到商店,然后刚开始也是查了资料的,结果发现一头雾水,不过最后还是捣鼓出来了,当然也参考了前人分享的经验,下面我就将方法整理一下: 首先明确 ...

  2. ios下微信浏览器如何唤醒app?app已上架应用宝

    android下可以通过在应用宝微下载地址后面加参数&android_schema='应用schema'来实现,ios下如何实现? ios下微信浏览器如何唤醒app?app已上架应用宝 > ...

  3. 利用ios safari浏览器生成桌面快捷方式并唤醒app的示例代码

    html 内容: //通过a链接唤醒app  <a href="app约定好的scheme" id="qbt" style="display:n ...

  4. iOS后台唤醒实战:微信收款到账语音提醒技术总结

    1.前言 微信为了解决小商户老板们在频繁交易中不方便核对.确认到账的功能痛点,产品MM提出了新版本需要支持收款到账语音提醒功能.本文借此总结了iOS平台上的APP后台唤醒和语音合成.播放等一系列技术开 ...

  5. 手机浏览器_安卓_苹果手机Webview 中唤醒APP

    Url scheme是iOS,Android平台都支持,只需要原生APP开发时注册scheme, 那么用户点击到此类链接时,会自动跳到APP.比如 <!-- 打开考拉APP首页 --> & ...

  6. 从浏览器或者Webview 中唤醒APP

    本文来自网易云社区 作者:刘新奇 移动互联时代,很多互联网服务都会同时具备网站以及移动客户端,很多人认为APP的能帮助建立更稳固的用户关系,于是经常会接到各种从浏览器.webview中唤醒APP的需求 ...

  7. 在UC浏览器打开链接唤醒app,假设没有安装该app,则跳转到appstore下载该应用

    在UC浏览器打开链接唤醒app,假设没有安装该app,则跳转到appstore下载该应用 须要在project中设置例如以下: 1.打开project中的myapp-Info.plist文件 2.打开 ...

  8. H5网页唤醒app,判断app安装

    在阅读本文之前你首先应该对js有基本对掌握,并且对Scheme,intent有一定的理解.更多的是代码 上午给朋友做了一个产品引导页,但是需要判断ios系统的TestFlight是否安装,进行了goo ...

  9. 微信浏览器内 h5 直接唤醒 app 之 微信开放标签 wx-open-launch-app

    以前微信浏览器内想要直接唤醒 app 要么接微信的应用宝要么你是腾讯的干儿子. 而在微信在2020年5月分推出了“微信开放标签”功能 wx-open-launch-app 用于微信浏览器内直接唤醒 a ...

随机推荐

  1. Nodejs学习笔记之复制文件

    前端童鞋都知道,javascript是没有权限操作磁盘文件的,server童鞋一向都很鄙视.但是nodejs可谓让咱们前端扬眉吐气啊,最近在学node,其强大的功能让人异常激动和兴奋.今天就学习了它怎 ...

  2. Python入门-装饰器初始

    今天我们就围绕一个来展开,那就是:装饰器 一.装饰器 在说装饰器之前,我们先说一个软件设计的原则:开闭原则,又被称为开放封闭原则,你的代码对功能的扩展是开放的,你的程序对修改源代码是封闭的,这样的软件 ...

  3. hadoop 3.0.0 alpha3 安装、配置

    1. 官网下载 wget  http://mirror.bit.edu.cn/apache/hadoop/common /hadoop-3.0.0-alpha3/hadoop-3.0.0-alpha3 ...

  4. 04_zookeeper的watcher机制

    [watcher简述] * zk针对每个节点的操作,都会有一个监督者:watcher * 当监控的某个对象(znode)发生了变化,则出发watcher * zk中的watcher是一次性的,出发后立 ...

  5. jso cpp解析读写数据

    json write : { "array" : [ { "aaaaaa" : "bbbbbb", "number" : ...

  6. 使用Idea搭建Spring Boot环境

    1.基本安装配置 IntelliJ IDEA搭建SpringBoot的小Demo SpringBoot+IDEA+Maven快速入门 2.

  7. 阿里云上面部署mysql

    0.卸载已有的mysql 系统中可能早已存在mysql数据库,所以在安装之前我们需要将其卸载掉. # rpm -qa|grep -i mysql 该命令将显示已经安装了的mysql软件,之后通过下面的 ...

  8. centos系统移植

    今天将一个服务器上面的硬盘拆掉放到安装到另外一个服务器上面,硬盘里已经安装系统为centos6.0. 服务器 为dell的1850,好吧,在今天我还有幸搞这种“屎”前的服务器还是很幸运的! 硬盘换了之 ...

  9. leetcode-surrounded regions-ZZ

    Problem Statement (link): Given a 2D board containing 'X' and 'O', capture all regions surrounded by ...

  10. mongodb 3.4 YUM安装

    1:配置yum源vi /etc/yum.repos.d/mongodb-org-3.4.repo加入以下内容: [mongodb-org-3.4] name=MongoDB Repository ba ...