#didiShit
网络最火的O2O应用,价值100亿美刀的滴滴拉屎APP源码。 相关新闻:滴滴拉屎 逆天App未出先火
本应用基于 APICloud 平台开发,本地运行及调试代码需要安装 APICloud IDE,API 可参考 相关开发文档,自己修改后的代码,需要到 APICloud 平台注册,并按步骤完成云编译,才能生成安卓、iOS 双平台应用。
#开发准备
- 下载 APICloud SDK
- 或单独下载 APICloud IDE
- API 文档
#API 简介
简单介绍下本应用涉及的一些常用 API。
APICloud 应用特色之一:支持多窗口(每个页面是独立的 webview),跟单页 webApp 对应
结构关系:
APP > Window > Frame
等待 api 对象加载完毕
apiready = function(){}
打开全屏的 Window 窗口
api.openWin({
name: 'dropping', //窗口名字
animation: { //窗口切换动画
type: 'movein',
subType: 'from_right'
},
url: './html/win_dropping.html' //窗口url
});
关闭 Window
api.closeWin()
打开随意大小的 Frame 窗口
api.openFrame({
name: 'main', //子窗口名字
url: 'html/main.html', //子窗口url
bounces: false, //禁止窗口弹动效果
opaque: true, //不透明
bgColor: '#fff', //窗口背景
pageParam: { //窗口间传参数,打开的窗口用 api.pageParam.headerH 接收
headerH: headerPos.h
},
rect: { //窗口坐标,宽高
x: 0,
y: 0,
w: 'auto', //宽度自适应
h: 'auto' //高度自适应
}
});
关闭 Frame
api.closeFrame()
跨窗口执行脚本
api.execScript({
name: 'root', //主窗口名字
frameName: 'main', //子窗口名字
script: 'fun();' //要执行的方法名
});
监听设备事件
api.addEventListener('keyback',function(){
//监听安卓 back 键
});
设置 iOS 状态栏风格
api.setStatusBarStyle({
style: 'dark'
});
toast效果
api.toast({
msg: '好吧,不聊了',
duration:1000,
location: 'middle'
});
百度地图模块
var bMap = api.require('baiduMap');
bMap.open();
语音识别模块
var obj = api.require('speechRecognizer');
obj.record();
设备 iOS7+ 状态栏
$api.fixIos7Bar()
减少300ms延迟,响应触摸时状态
tapmode + onclick,tapmode 属性值为 CSS class 名
<span class="cancel" tapmode="active" onclick="api.closeWin();">
<i class="fa fa-angle-left"></i>
</span>
#真机调试
打开 APICloud IDE,手机通过 USB 连接电脑,随便打开一个文件,Ctrl + R
,iPhone 需要自己点击 AppLoader
打开应用,安卓会自动打开,可以看到代码在手机上的效果。
#修改代码
- 自己修改代码,需要申请自己的 baidu Key。
- 修改后的代码,需要打包成
widget.zip
,里面包含一层/widget/
目录,上传到云端,上传代码 -> 选择文件 -> 保存。 - 云端添加
speechRecognizer
模块。 - 云编译 -> 选择平台 -> 云编译
#APP二维码