美文网首页
浅述URL Scheme 与Universal links

浅述URL Scheme 与Universal links

作者: VDEMO | 来源:发表于2020-11-02 18:43 被阅读0次

    1、URL Scheme 与 Universal links 简介与对比     

    1.1 URL Scheme

           URL Schems启用时代与适用系统版本查了一下,没查到[Sweats],但是每个有经验的iOS开发者应该都用过,即使你不用实现自家公司不同app之间的跳转,你总是对接过微信支付宝这两大巨头。整个过程非常简单:Url Types 里配置在对应平台注册生成的appID,比如微信就是wx开头的一串数字,至于吊起微信的过程被SDK封装起来了,咱们也看不到,但是基本也应该是对于openUrl的一次封装。

           为什么要封装,应该就与URL Scheme的一个缺点有关:Url Types开发者可以随意配置,只要你把这个随意配置的字符串打进包里装在用户的手机上,他就可以响应别的应用的调起。试想一下如果微信不作处理的话,如果用户手机上出现了和微信配置一样Url Types的应用,那么本来一次正常调起微信的操作就会错乱了,因为调起过程只认Url Types这一项,这时候会调起应用是随机还是有什么其他规律,这点我倒是没有统计过。

            所以对于URL Scheme,一个最需要注意的点是一定要尽量确保自己配置的Url Types的唯一性,比如适用随机生成的字符串。这方面最优秀的例子当属微信用的appID体系,每个适用他们平台的应用需要到他的平台去注册,然后就生成了一串唯一的字符串,然后你要把这个字符串配置到你的Url Typs里,这样你在调起他们时把你配置的这个传给他们,他们就知道调用完要回到哪了,才能实现下图的效果。

    分享微信后返回原应用弹窗

    1.2 Universal links

            Universal Links是iOS9.0推出的新技术。如果我们的应用支持通用链接,那么就可以通过https链接来打开APP(手机中已经安装此APP),或者跳转到https链接(手机中没有安装此APP)。

    简单说一下通用链接的特性

    唯一性:不像自定义的schema链接,通用链接不会被其它的APP所使用。因为它使用标准的https链接到你自己的域名。【因为你的域名不会被其他人所使用】

    安全性:当用户下载APP的时候,iOS会检查你上传到web服务器的文件以确保您的网站允许您的应用程序以其名义打开网址。因为只有本人有权利创建且上传该文件到服务器,所以网站和APP的关联是安全的。

    灵活性:甚至在iOS设备没有安装你项目的时候通用链接也会正常工作。当设备没有安装APP的时候,点击通用链接会在Safari展示你网站的内容。

    灵活性:一个通用链接可以同时作用于项目和网站中。

    灵活性:其它APP可以在不知道你的APP是否安装的情况下与你的APP通信

    2.使用条件

    1.有一个注册的域名。

    2.支持https请求,并且CA证书是有效的,这个需要与后端同事进行确认。

    3.可上传一个json文件到web服务器

    4.APP版本至少为iOS9及以上

    5.Xcode版本为7以上

    2、使用步骤

    2.1、URL Schemes

    1、TARGETS->info->Url Types,添加一个新的scheme

    配置URL Types

    2、Appdelegate代理方法接收打开参数并处理(如有需要)

    接收参数并处理

    2.2 Universal links

    1、创建apple-app-site-association文件

          创建一个apple-app-site-association文件(注意是没有后缀的),其内容是json格式,官方示例如下

    apple-app-site-association文件

    2、上传apple-app-site-association文件

    将上面生成好的apple-app-site-association上传到web server

    2.3.检查

    (1)使用浏览器打开我们上传的文件路径,应该可以直接看到刚刚上传的json文件,或者是会自动下载到电脑。

    (2)苹果也提供了一个官方网页供我们开发者来验证https://test.com/apple-app-site-association是否有效。验证地址:https://search.developer.apple.com/appsearch-validation-tool/

    2.4 Associated Domains打开,并填写我们的域名,前缀是applinks。etc.如果你的域名是https://test.com,则填上applinks:test.com。APP会在第一次启动的时候通过填写的域名来下载apple-app-site-association文件

    添加完Associated Domains后,项目会自动生成.entitlements文件

    2.5、此时配置已完成,可通过各种方式调起应用了

    备忘录 域名 代码打开

    注意:Universal links处理回调的方法与Scheme不同,在continueUserActivity方法里处理

    相关文章

      网友评论

          本文标题:浅述URL Scheme 与Universal links

          本文链接:https://www.haomeiwen.com/subject/wwpmvktx.html