专栏首页搜狗测试iOS APP添加桌面快捷方式

iOS APP添加桌面快捷方式

前言

最近在地图项目中测试了一个iOS地图添加到桌面快捷方式的功能,实现的功能是这样的:你可以把经常搜索或导航的历史记录或收藏点如你的家以快捷方式添加到桌面,这样无论在哪儿,你只需要在手机桌面直接点击家的快捷方式图标,就可以直接求到回家的路并导航回家。而不需要每次打开搜狗地图APP输入家的地址再去导航。 在其他APP中也有不少类似的应用,如支付宝的小程序、手机浏览器中经常访问的网页等都可以以快捷方式添加到桌面,为了更好地完成该类功能的测试,小编了解了开发实现并进行了整理,在此和大家分享,希望各位能有所收获。

1. 桌面快捷方式功能介绍

如前言所述,将APP添加到桌面快捷方式其实就是将应用的某一个页面或某一个功能以快捷方式形式添加到桌面,用户点击桌面图标,可以唤起应用并打开对应页面或功能。 由于iOS目前还没有这个功能的开放API,通常都是借助于Safari浏览器来实现,在Safari浏览器中有一个子功能-添加到主屏幕,通过这个入口可以实现这个功能。

2. 桌面快捷方式功能实现

通过分析可知,整个功能实现分为两部分:一是把APP中的某个页面或功能添加到桌面快捷方式,二是点击桌面快捷方式图标唤起APP。下面将分别介绍。 2.1 APP添加到桌面快捷方式 实现方案为:APP内部执行添加到桌面操作时调起Safari,让Safari访问一个指定页面,此时再利用Safari的“添加至主屏幕”功能,生成桌面快捷方式图标。 该部分的实现包括以下几个步骤: 1) APP端执行添加到桌面操作 如下图所示,点击我的家-添加快捷地点到桌面

2)客户端通过OpenUrl调起Safari,再二次跳转到data url 技术实现方案是首先通过调起Safari,然后跳到一个Data URI Scheme形式下的HTML页面,而添加到主屏幕的也是这个Data URI Scheme形式下的HTML页面。 OpenUrl调起Safari的实现为: [[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"http:www.xxx.com"]]; 通过该方法即可调起Safari,让Safari访问附带的URL链接,在该功能实现中,URL链接指向一个Data URI Scheme形式下的HTML页面。如下图所示:

其中pre.html是实体页面,被编译为data url; index.html是入口文件,打开后二次跳转至pre.html对应的data url。 3) Safari中点添加到主屏幕,生成桌面快捷方式图标

点击添加到主屏幕,跳转页面可以看到data url格式的内容。添加到主屏幕,就是将编码好的网页内容和图标保存到桌面。 2.2 点击桌面快捷方式图标唤起APP 当点击桌面图标的时候,会先跳转到一个中间页面,然后执行JS文件跳转到App对应的功能。

在js文件中,通过window.navigator.standalone来判断当前页面是否全屏,如果非全屏,那么就显示一个引导页,如果是全屏,就打开一个链接。 至此,iOS APP添加到桌面快捷方式的功能就已经实现了。

3. 技术小科普

最后针对文中出现的几个知识点进行简单科普,以便更好地理解上述逻辑。 1)Data URI Scheme Data URI Scheme可以将数据嵌入到网页里面但无需任何额外的HTTP 请求。 假如你在网页里需要放一张图片A,通常方式为: <imgsrc="http://xxx.xx.xx.xxx/images/A.png"/> 这种实现方式为http URIscheme,img标记的src属性指定了一个远程服务器上的资源。当网页加载到浏览器中时,浏览器会针对每个外部资源都向服务器发送一次拉取资源请求,占用网络资源。如果一个网页里嵌入了过多的外部资源,这些请求会导致整个页面的加载延迟。 同样的效果使用 data URIscheme 可以写为 <imgsrc="data:image/png;base64,iVBO…" /> 在data URI scheme实现方式中,把图像文件进行base64编码直接存储在页面HTML文档中,节省了一个HTTP请求。网页优化的一大首要任务是减少HTTP 请求 (http request) 的次数,因此data URI scheme不仅提高了网页优化效率,而且无需HTTP 请求可以实现在断网条件下正常资源加载。 2)Base64 编码 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,base64 编码和解码的工具见http://imgbase64.duoshitong.com/。 3) Data URI的格式规范 data:[<mimetype>][;charset=<charset>][;<encoding>],<encodeddata> data :协议名称; [] :可选项,数据类型(image/png、text/plain等) [;charset=] :可选项,源文本的字符集编码方式 [;] :数据编码方式(默认US-ASCII,BASE64两种) , :编码后的数据 目前,Data URIscheme支持的类型有: data:, 文本数据 data:text/plain, 文本数据 data:text/html, HTML代码 data:text/html;base64, base64编码的HTML代码 data:text/css, CSS代码 data:text/css;base64, base64编码的CSS代码 data:text/javascript, Javascript代码 data:text/javascript;base64, base64编码的Javascript代码 data:image/gif;base64, base64编码的gif图片数据 data:image/png;base64, base64编码的png图片数据 data:image/jpeg;base64, base64编码的jpeg图片数据 data:image/x-icon;base64, base64编码的icon图片数据 4)设置web application样式 设置桌面图标 <linkrel="apple-touch-icon" sizes="167x167"href="touch-icon-ipad-retina.png"> 设置启动图 <linkrel="apple-touch-startup-image" href="/launch.png"> 设置快捷方式名称 <metaname="apple-mobile-web-app-title" content="AppTitle"> 设置Web应用运行时是否全屏 <metaname="apple-mobile-web-app-capable" content="yes"> 设置Web应用的导航栏样式 <metaname="apple-mobile-web-app-status-bar-style"content="black"> 关联到其他应用 <ahref="tel:1-408-555-5555">Call me</a>

本文分享自微信公众号 - 搜狗测试(SogouQA),作者:zhonglv

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JMeter 批量接口测试

    最近在进行某中台的接口测试准备,发现接口数量非常多,有6、70个,而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值。想了几种方...

    用户5521279
  • 白盒测试体系—框架搭建篇

    良好的布局是成功的一半,选择一款合适的测试框架能够使我们的白盒测试更高效,事半功倍。

    用户5521279
  • APP测试之专项测试

    说到专项测试,大家的第一反应可能是流量测试、电量测试、弱网络测试等及其对应的专项测试工具。除了以上,关于专项测试我们还要知道:

    用户5521279
  • 情商高的男人,都应该学习这些说话技巧

    我们从一两岁开口发出第一个音节起,就被称为学会说话了,几十年来,每一天我们都要说话,从简单的沟通交流,到复杂的辩论探讨,说话伴随着我们每个人的生活——说话是件小...

    宇相
  • PHPExcel对于Excel中日期和时间类型的处理

    PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时...

    大江小浪
  • 人工智能唇语阅读能力超过人类

    在数据处理和文件归档方面,机器的表现已经超过人类,如今机器还具备了唇语识别能力。 据英国《每日邮报》报道,英国一个研究团队开发了一款唇语阅读计算机程序,其能力甚...

    人工智能快报
  • 某CMS后台拿shell

    接触渗透时间,按暑假来算的话已经2个月多了,接触渗透几天,瞎打瞎闹拿了个shell,之后各种查资料查姿势,终于提权成功了。 然后就自认为渗透真简单,天天批量扫注...

    用户1467662
  • R语言Black Scholes和Cox-Ross-Rubinstein期权定价模型案例

    近年来,期权交易变得非常流行。 在这篇文章中,您将学习一种期权交易策略,可以用来以较低的价格购买自己喜欢的股票。期权是一种衍生工具。衍生物被誉为20世纪后期的金...

    拓端
  • CentOS6.5:升级了python,把输入法给玩坏了

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • 小白也能学会的《Oracle数据库的安装与基本配置》

    (1)掌握 Oracle数据库服务器的安装与配置。 (2)了解如何检查安装后的数据库服务器产品,验证安装是否成功。 (3)掌握Oracle数据库服务器安装过...

    TrueDei

扫码关注云+社区

领取腾讯云代金券