一秒钟生成自己的iOS客户端
原谅我这个标题党
想当年我也是亲自学过几天Objective-c的程序猿,我一眼就知道我是在骗人,但那有怎样呢!还不是满大街都是各种《十分钟让你明白Objective-C的语法》、《七天学会Swift》、《三个月成为牛B的iOS攻城狮》,CAO、不论你信不信,这些标题真的是存在的。那我今天就勉为其难地讲一讲如何真的一秒生成自己的iOS客户端吧! ps:这样会不会没朋友...
一切从那家小饭店说起
前段时间,一直在开小饭馆的表姐可能由于美团、饿了么这些牛B的地推团队的轰炸,终于想明白了移动互联网时代开个小饭馆也要创新、有逼格,就问我能不能帮她家小饭馆做一个系统,就是让吃货们用手机就能点她们家的菜或者订外卖。听到这里我又快疯了,这不就是让我帮她做一个美团外卖么?尽管我自认为我有这能力搞定(哎,又吹牛了),但这完完全全是没必要的阿!!!然后我又问:现在订外卖的多么?加一个人送外卖还划算么?有没有上美团或饿了么的系统?等等一系列问题。我姐就回答说:订外卖的不多,大部分的客户还是到店吃饭;现在在用饿了么的系统,就是喜欢他们的那种菜单。到这里我就明白了,其实我姐最需要的就是一个让吃货们扫一扫就能点菜的菜单小网页罢了,再能打电话订餐就更好不过了。
说干就干,抄袭美团
我接下来就开始了寻找“完美菜单”的过程,因为互联网界一直在打仗的原因,我手机上有移动互联界主流的所有APP,我打开了美团外卖、百度外卖、饿了么,尼玛、界面长的一个样子,我就在怀疑是不是一个程序猿的代码了,这让我想起了当年杀毒界的故事。然后我Copy了美团外卖的前端源码,数据绑定用了Handlebars.js,数据存储直接用json文件就行,服务器必须是阿里云的免费滴!本来想用京东的,那几天京东的一直发布不成功,一脚踢开。然后就变成了下面这样:

好了好了,上干货
说了乱七八糟的半天,求不骂。自动生成APP说白了就是利用Safari浏览器的特性来玩,也就是iOS会自动帮你生成一个WebAPP,具体做法:
1、设置APP图标。在网站首页加入以下代码。图片就是APP的图标,apple-touch-icon和apple-touch-icon-precomposed区别在于前者图标有高光,这行代码主要是适配四种不同的屏幕。
<link rel="apple-touch-icon" href="touch-icon-iphone.png">
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="touch-icon-ipad.png">
<link rel="apple-touch-icon" sizes="120x120" href="touch-icon-iphone-retina.png">
<link rel="apple-touch-icon" sizes="152x152" href="touch-icon-ipad-retina.png">
2、添加启动页图片。官方文档说尺寸必须是320x480。ps:反正我没成功。
<link rel="apple-touch-startup-image" href="/startup.png">
3、设置状态栏,使之更逼真。第一行的yes为使用状态栏,第二行的balck为黑色状态栏,black-translucen就是传说中的“沉浸式”。
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black">
打完收工!!!官方文档点击这里。我“抄袭”的网页在这里。效果如下:

感冒好了,蹲厕所能闻见shi味的生活真美好!
一秒钟生成自己的iOS客户端的更多相关文章
- 猿题库 iOS 客户端架构设计
原文: http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=444322139&idx=1&sn=c7bef4d439f4 ...
- 猿题库 iOS 客户端架构设计-唐巧
序 猿题库是一个拥有数千万用户的创业公司,从20013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代. 在如此快速的开发过程中,如何保证代码 ...
- iOS客户端的在线安装和更新——针对ADHoc证书
这篇文章纯给自己留个备份,所以对AdHoc证书内部分发和对iOS客户端开发不了解的请直接无视. 一般在iOS游戏或应用开发过程中,正式发布到App Store之前,都需要内部的测试,客户端的安装是个不 ...
- 开源中国iOS客户端学习
开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客 http://blog.csdn.net/column/details/xfzl-kykhd.html ...
- 【HELLO WAKA】WAKA iOS客户端 之一 APP分析篇
由于后续篇幅比较大,所以调整了内容结构. 全系列 [HELLO WAKA]WAKA iOS客户端 之一 APP分析篇 [HELLO WAKA]WAKA iOS客户端 之二 架构设计与实现篇 [HELL ...
- iOS客户端图片智能裁剪
 概述 所谓智能裁剪其实就是按照指定尺寸裁剪或显示出包含图片核心特征的区域,目前很多智能裁剪都是在服务器端做的,在客户端需要访问时直接裁剪放到Redis或者提前裁剪好以备访问.但是找了一圈直接在iO ...
- 猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)
猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快 ...
- IOS客户端UIwebview下web页面闪屏问题
基于ios客户端uiwebview下的web页面,在其内容高度大于视窗高度时,如果点击超过视窗下文档的底部按钮,收缩内容高度,会发生闪屏问题. 外因是由文档的高度大于视窗的高度所致,本质原因未知. 解 ...
- 开源项目在真机调试(Coding iOS 客户端为例)
一.前言 iOS 13学习系列:如何在github下载开源项目到本地(Coding iOS 客户端为例)已经把 Coding iOS 客户端源码下载到本地. 但项目进行真机调试遇到很多问题. 二.问题 ...
随机推荐
- Android 中的AIDL,Parcelable和远程服务
Android 中的AIDL,Parcelable和远程服务 早期在学习期间便接触到AIDL,当时对此的运用也是一撇而过.只到近日在项目中接触到AIDL,才开始仔细深入.AIDL的作用 ...
- 国内市场上 Android 手机屏幕分辨率的比例情况如何?
http://www.zhihu.com/question/19587205 根据友盟发布的<友盟国内Android数据报告>,前六名分别是: 800×480,32.4% 480×320, ...
- IE8以下版本iframe出现滚动条和内容空白问题
在网页中使用iframe引用了第三方的页面 $("#tianqi").html('<iframesrc="http://i.tianqi.com/index.php ...
- JS图片切换效果
源地址:http://www.codefans.net/jscss/code/4699.shtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- 如何清除朗逸保养提示标志INSP
自己消除insp小扳手方法 具体步骤如下1.插入钥匙,不要转动.2.按住显示屏下方右边的黑圆柱按钮 3.钥匙转到2档,通电自检,期间按住按钮不要松手4.过10秒左右,INSP消失,小扳手自己去除 不用 ...
- java项目中读取properties文件
这里的配置文件都放在src下面, System.properties的内容 exceptionMapping=exceptionMapping.properties config=config.pro ...
- Updating Protobuf and GRPC in Golang
转自: http://russmatney.com/techsposure/update-protobuf-golang-grpc/ TL;DR: When protobuf updates, all ...
- Reset Entity-Framework Migrations
You need to delete the state: Delete the migrations folder in your project Delete the __MigrationHis ...
- [JS Compose] 0. Understand 'Box' or 'Container', they are just like Array!
We'll examine how to unnest function calls, capture assignment, and create a linear data flow with a ...
- C# winForm 窗体闪烁问题
在构造函数里加上以下代码: this.DoubleBuffered = true;//设置本窗体 SetStyle(ControlStyles.UserPaint, true); ...