Appcan使用总结
介绍appcan
项目需要开发一个app,由于不会进行原生iso与android的开发,并且开发时间短,决定使用H5开发web app。
在选定appcan之前,先后使用了几款其他开发工具或者相关库,如使用phonegap封装使用iscrol的web页面,基于angular内核的ionic...最后因为性能和学习成本选择了appcan。
特点
appcan是国内正益无线公司开发的一个app开发平台,可以让开发人员仅仅会html,css,js的情况下开发出来一款移动应用,通过appcan开发平台打包成ios和android两种版本。换句话说,对不会ios和android开发的web前端人员简直是福音。当然它还有很多其他优点:
1,门槛低,开发人员仅仅需要会html/css/js。当然如果会进行原生应用的编写会更加得心应手。
2,文档全,拥有相对教成熟的社区。官方工作人员也提供技术回答。但是大众版的服务肯定是比不上企业版的服务。
3,性能好。虽然没有办法和native app相比,但是和其他web app相比,觉得已经很好了,其他亲自测试过的,只有ionic能比,但是相比ionic门槛更高些。
经验
1,创建应用可以在线创建和通过IDE创建两种方式。但是建议首先在线创建需要的项目,然后在IDE创建的时候appcan应用的时候选择同步appcan项目,这样之前在线创建的项目就同步到本地,更重要的是,在本地修改项目后可以直接通过svn把修改提交到网络资源库,进行在线保存和在线打包。若直接IDE创建新项目,则上传svn就要花一番功夫。
2,不过通过IDE直接创建新项目的时候有个优势是可以使用APPCAN内置的一些模板,你可以直接选择跟自己项目接近的模板生成,避免去进行UI设计的烦恼。但是,在线创建则不能使用模板。不过,同步在线项目后,可以选择新建APPCAN页面,这个时候就可以任意使用模板并且按照自己的需求进行修改了。
3,appcan很赞的是提供了模拟器测试,但是只能进行页面样式和基本功能的测试,无法模拟触摸事件的测试,不过已经方便很多。appcan也可以进行真机调试,这个还没有尝试。
4,当应用使用到一些插件的时候,必须使用打包后调试,甚至一些必须是在线打包才行,比如推送的插件,在本地打包虽然标注引用推送的插件,但是生成的应用并没有引用到,比如要解决软键盘遮盖页面内容的问题,必须使用在线打包的压缩模式。
5,免费用户在线空间有100M,可以有50个应用。若打包多或者创建应用多,会导致空间资源不够,这个时候则只能在应用开发中进行应用管理,删除调试时候多余的版本。一般情况下,这样已经够用,但是若仍不够用,那就去买企业版吧。
6,在应用生成的时候,在项目文件夹下的js目录中有一些内置的官方js,这些js开发人员可以根据自己的项目需要直接进行修改,特别是在源文件就有bug的情况下,则必须进行修改了。
7,推送应用。在论坛搜索极光推送,可以看到找到一个addy用户分享的极光推送插件。注册一个极光账号,新建一个应用,在填写包名的时候要注意,一旦使用,包名不可再更改。然后在插件的AndroidManifest.xml文件中把包名和appkey替换即可上传到appcan应用管理中心,注意打包项目的时候要在插件选择处勾选,自上传插件是不会自动勾选的。然后打包打包应用就行,就应该可以使用。
8,键盘遮盖内容。官方提供的解决方案是在打包的时候使用压缩模式即可。但是测试的时候发现不行。后来经过对比代码测试,发现如果input部分页面是通过appcan.frmae.open打开的,则页面不会被键盘顶起。在使用键盘时候如果发现会出现不一致的背景颜色,则更改页面中html页面的颜色即可。
9,关于时间格式兼容性bug。在和后台进行数据交互的时候,要把'2014-11-29 20:20:20' 用new Date()解析成时间戳。打包后发现在ios版本下有问题,后来修改成'2014/11/29 20:20:20'则通过。
10,appcan的IDE使用的是3.1,在使用的时候发现内置的post请求,生成列表方面都有些一些bug。post请求则使用了内置的zepto的post请求,至于列表的bug则直接改了源码。
最后
这篇仅仅记录了个人使用appcan时候的一点经验,至于具体怎么使用,文档已经很全面,没有必要再费时间重复。若有兴趣可以直接去appcan的官网www.appcan.cn自行下载与测试。