从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. IE8 td元素 width无效的bug;

    不经意间做项目发现IE的td在某种情况下好奇怪,自己设置的width不起作用: 后经google大法,发现解决方案:已验证过完美解决bug; <table style="width:  ...

  2. webapi datetime类型序列化成json带T且时间不对问题的解决

    在global.asax.cs里加入如下代码: protected void Application_Start() { GlobalConfiguration.Configuration.Forma ...

  3. 主动驱动事件执行--createEvent

    1. createEvent(eventType)参数:eventType 共5种类型:    Events :包括所有的事件.           HTMLEvents:包括 'abort', 'b ...

  4. Ajax与jsonp

    1.ajax的概念 AJAX = Asynchronous Javascript And XML (AJAX  =  异步  javascript  和 xml) AJAX是一种无需重新加载整个网页的 ...

  5. CentOS 7运维管理笔记(12)----GUI配置工具Webmin的安装

    早期的Linux系统管理员或是Web管理员在修改服务器配置时使用最多的就是vi编辑器,但是现在越来越多的基于GUI界面的配置工具出现了,毕竟人们还是喜欢以直接的可视化的方式来修改服务器的配置,而不是再 ...

  6. CentOS 7运维管理笔记(9)----Apache 安全控制与认证

    Apache 提供了多种安全控制手段,包括设置Web访问控制.用户登陆密码认证及 .htaccess 文件等.通过这些技术手段,可以进一步提升Apache服务器的安全级别,减少服务器受攻击或数据被窃取 ...

  7. WebService性能测试

    什么是WebService?(本文也会在最下面通俗的介绍) 这里给一个站内大哥的讲解:http://www.cnblogs.com/Leo_wl/archive/2010/05/20/1740205. ...

  8. toasf的苦水

    http://blog.csdn.net/qq_25867141/article/details/52807705 优化 上面的几种方式我大致也都走了一遍,其实我觉得都没啥区别,看你喜欢用哪种吧.我其 ...

  9. LINUX下 informatica9.0.1 启动与关闭

    [root@infa ~]# su - infa [infa@infa ~]$ cd $INFA_HOME 关闭 [infa@infa 9.0.1]$ $INFA_HOME/server/tomcat ...

  10. mysql 免安装版安装(window7)

    初次使用mysql免安装版步骤: 1.设置环境变量,将mysql 加压文件路径添加到环境变量path中(作用是不用每次都切换路径) 控制面板>系统和安全>系统>高级系统设置 2.安装 ...