iOS9-by-Tutorials-学习笔记三:Your-App-on-the-Web

iOS9-by-Tutorials-学习笔记三:Your-App-on-the-Web

本文版权归作者所有,如需转载请联系孟祥月
CSDN博客:http://blog.csdn.net/mengxiangyue
独立博客:http://mengxiangyue.com

这里首先说明一下:这篇文章由于一些限制,我也没有能够进行实验测试,只是尽可能的解释书中的一些知识,可能会有错误,等以后有条件了,我会实验这篇文章中的内容。但是作为了解内容还是不错的。

在iOS 9之前在iPhone上native和web之间,基本上算是独立的的两部分内容。但是Apple正在努力缩小两者之间的距离,使其越来越近。在iOS 9退出了universal links和web markup,使你能够提供deep links直接进入你的app和在Spotlight和Safari中能够搜索出来你的内容。

Getting started

这一章书中提供了两个工程,一个是APP端的,一个是Server端的,因为这个需要Server端修改一些东西。APP可以通过地址:https://itunes.apple.com/us/app/rwdevcon-tutorial-conference/id958625272?mt=8进行下载。APP截图如下:

Linking to your app

在真正开始前,先回顾一下universal link的前辈:deep links。通过这个回顾,了解一下deep links存在的一些问题。

在iOS 9之前我们可以给APP设置URL scheme,在Info.plist里面添加CFBundleURLTypes key。一般格式类似://。 另外应该也看到过Apple自己的URL scheme,类似tel://、sms://等。

一旦设置了URL scheme,就能够通过openURL(_:)方法调用起来该APP,调用的时候后面可以带着一些参数。然后在我们自己的程序里面可以再AppDelegate的application(_:handleOpenURL:)中进行对应的处理。这套系统已经存在很久了,但是现在暴露出来一些问题:
* 安全 UIApplication有一个方法canOpenURL(_:),可以用来检测用户是否能够打开某个URL secheme,本来苹果的设计是好的,但是不幸的是现在好多开发商使用这个来检测用户手机安排了什么APP,这样就收集了用户的APP列表,涉及到了用户的隐私。

canOpenURL(_:)这个方法在iOS9中有了限制,如果想使用这个方法必须首先把所有的地址添加到info.plist中,不能按照原来由服务器下发来检测APP安装了。

  • 冲突 由于URL scheme是每个APP开发商自己定义的,很有可能两个APP开发商定义相同,这时候如果使用openURL(_:),iPhone将不会知道应该怎么处理。
  • No fallback:如果 iOS 试图打开没有注册的 URL scheme,会静默失败,然后用户并不知道发生了什么。

iOS使用universal links来解决这些问题。使用universal links来代替URL scheme。universal links使用标准的HTTP和HTTPS链接。

这里举了一个例子:你有一个域名clownapp.com,你可以注册http://clownapp.com作为你的universal link。如果用户安装了你的clownapp。当他在Safari或者web view中点击链接http://clownapp.com/clowns/fizbo的时候,将会直接进入到你的APP的fizbo的profile页面。如果你没有安装这个将会直接跳转到你的网站上的fizbo的profile页面。如果你使用openURL(_:)打开,也会与这个动作一样。

PS: 这里我运行书中的例子,在模拟器的Safari中打不开。可能是我的原因

Universal links与deep links有如下的有点:
* 唯一 由于使用的是域名,能够保证唯一性
* 安全 将你的app与你的域名绑定,上传一个安全签名到你的网站服务器。同样其他的APP也不会轻易的知道手机上是否安装了你的APP。

这里原文如下There’s also no way for other apps to tell whether your app is installed.这里不是没有方式,只是说没有原来那么容易。使用URL scheme白名单的方式还是能够检测。

  • 简单 由于跳转到APP和服务器的链接统一了,所以不用考虑在APP和手机上需要使用两套不同的链接了。

为了使App能够处理对应的链接,首先需要让App知道应该处理什么链接。这里使用的链接是rwdecon.com。按照下图添加对应的链接:

这里可能会出现选择账户,这时候就选择你对应的就好了,如果没有账户可以进入到Account添加。

你需要在服务器的根目录下面࿰

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值