iOS universallinks唤醒app

  从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. 测试

  在safari中打开对应的链接

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

猜你喜欢

转载自www.cnblogs.com/muzhou/p/9223690.html