周末的时候闲着没事,看到了个开源的红旅动漫的APP,于是自己就拿下来写了下,整个网站作者也解析成了接口,所以就可以写成app了,作者写的是用mui开发的,可以通过hbuilder软件打开,进行查看源代码,但是我没有用hbuilder,没有用mui框架,就自己简单的纯手写了下。

  下面来说下开始的准备把,这些接口数据都是来自红旅的,所以里面的图片啊链接什么的都是从网上直接过来的,所以一开始建项目文件夹的时候图片文件夹就不需要.顶部栏的话没什么好说的,下面的其他数据都是通过接口实现的,也就是得通过ajax来异步获取到数据,所以需要用到模板引擎,模板引擎的话我用的是github里腾讯的artTemplate,感觉还不错吧,渲染的也还挺快,感觉原生语法更像编程一点,可能更好理解一些吧。首先github上下载好模板引擎后直接导入到项目文件夹内,然后引用到需要使用模板引擎的地方就可以了,定义好模板后,就可以编写ajax。这是在移动端,为了能更简便更高效一点,使用了类似于jQuery的zepto库,用法和jQuery没什么区别的,稍微注意点不一样的地方就可以了,也和模板引擎一样导入到相应文件夹并引用就行。

  首页的轮播图获取到的数据里只有两张图,轮播图的实现有很多种方式,我是采用了在前面后面各加了一张,这样比较好做一点,你放的图越多,写的js代码就可以简便一点,图越少,就需要通过js来克隆图片,会相对复杂一点。这里我是克隆了两张图在收尾,这样就四张图了,轮播起来。再下面的内容是通过ajax获取,通过$.ajax({.....}),里面有个属性叫cache,缓存的意思,一开始也没有写这个属性,无意中添加了下,cache:false。发现好像有了缓存的问题。所以查了下,发现cache只有在get方式时可以使用,值为true的时候,会读取缓存,假如上次访问的one.html,这次再访问的话,会从上次的one.html读缓存,而不是再到服务器上读取。如果把值设置成false的话,会在url后面加一个时间后缀,让他跑到服务器获取结果。获取到数据后,接下去需要考虑的就是样式的问题了,我感觉,真的,有时候样式这个东西比js代码更难写,因为js代码错了会报错,可以通过浏览器调试工具进行调试,但是样式写那里有时候真的很难找,只得去试,然后慢慢调,li和里面包含的img,p,div之间的关系。调的时候,由于这是移动app,现在的手机屏幕有大有小,虽然差异不是很大,但是每款手机的屏幕也是不一样尺寸的,就是要不停的调试不一样的屏幕,可以先在浏览器调试工具中采用手机端模式,然后再真机调试。左边点击菜单栏的实现,下载下来的是用mui框架实现的,但是我没有用框架,所以就自己结合css3实现了类似的功能,大概就是点击菜单,左侧侧滑出一个页面,是菜单栏,本来主页的内容整体右移,并且被左侧的遮罩层遮住,使得不能的点击。实现的过程是给侧滑出来的菜单栏一个定位,在屏幕左侧隐藏,宽度设为70%左右,点击后移出来,为了有滑动的效果,则添加了transition:all -.4s,左侧侧滑出来的同时,原来的主页也右滑同样的距离,这样就感觉有左边移出来的东西把原来的页面 挤掉了,同时要有一个遮罩层,其实可以把背景设置成透明的,这样就有遮罩层的感觉,也可以加个层级,防止点击到下面的。其他也就没什么感觉麻烦的地方了。

  总结下,个人认为比较麻烦的地方就是获取到的内容写样式,适配不同的屏幕调试;由于没有用mui框架,轮播图的实现得自己写;同样没有用框架,左侧菜单栏的侧滑效果一开始没有想到,但是稍微想了一下,还是很简单的,实现起来也很快;还有就是ajax获取的时候缓存的问题。

移动app的一些心得的更多相关文章

  1. uve (mui/light7)写APP的使用心得(大坑);

    话说mui这个框架的UI确实挺好看的(个人觉得)所以项目使用了他,结果里面的坑太TM多,不得不说MUI做东西太不用心了,社区不活跃,提问都没人管!; mui第一个坑: 日期选择器默认值无效:使用代码跟 ...

  2. 慢阻肺疾病管理APP——第一次迭代心得

    时光匆匆,不知不觉就到了第十二周.——第一次迭代都完成了,最终迭代还会远吗? 一.第一次迭代的设想和目标: 1.  我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? ...

  3. 开源一个上架 App Store 的相机 App

    Osho 相机是我独立开发上架的一个相机 App,App Store地址:https://itunes.apple.com/cn/app/osho/id1203312279?mt=8.它支持1:1,4 ...

  4. Oslo 相机 App

    https://itunes.apple.com/cn/app/osho/id1203312279?mt=8.它支持1:1,4:3,16:9多种分辨率拍摄,滤镜可在取景框的实时预览,拍摄过程可与滤镜实 ...

  5. iOS开发200个tips总结(一)

    tip 1 :  给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...

  6. React Native开发技术周报1

    (一).资讯 1.React Native 0.21版本发布,最新版本功能特点,修复的Bug可以看一下已翻译 重要:如果升级 Android 项目到这个版本一定要读! 我们简化了 Android 应用 ...

  7. iOS开发tips总结

    tip 1 :  给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...

  8. hBuilder培训资源视频教程汇总

    DCloud对开发者的学习支持分3个层面:官方文档.三方专业培训.网友经验分享 DCloud的精力主要在做产品,配套的文档也会一直完善好.但专业的培训还不是DCloud能做好的,在HTML5中国产业联 ...

  9. mui初级入门教程(一)— 小白入手mui的学习路线

    文章来源:小青年原创发布时间:2016-05-15关键词:mui,html5+转载需标注本文原始地址:http://zhaomenghuan.github.io/#!/blog/20160515 写在 ...

随机推荐

  1. C语言之分支结构 if(一)

    一 程序的三种基本结构 顺序结构:程序从上往下依次执行,这个叫顺序结构 分支结构:有选择的执行或者不执行某段代码 循环结构:重复的执行某段代码 二 分支结构之if 最简单的俩种用法 (tips: if ...

  2. 【Coursera - machine learning】 Linear regression with one variable-quiz

    Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...

  3. ThinkPhp 源码阅读心得

    php 中header 函数 我可能见多了,只要用来跳转.今天在阅读TP源码的时候发现,header函数有第三个参数.有些困惑所以找到手册查阅下,发现 void header ( string $st ...

  4. scapy流量嗅探简单使用

    官方文档:http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html 参考链接:http://blog.csdn.net/Jeanphorn/ar ...

  5. CreateMutex 创建一个有名字的互斥量的时候hMutex=CreateMutex(NULL,TRUE,"tickets")报错

    编译器报错: 不能将参数 3 从“const char [8]”转换为“LPCWSTR”,怎么改成LPCWSTR类型 更改方法: hMutex=CreateMutex(NULL,TRUE,L" ...

  6. js遍历数组对象和非数组对象

    //---------for用来遍历数组对象 var i,myArr = ["a","b","c"]; ; i < myArr.len ...

  7. nginx(2)

    上一篇: nginx(1) 负载均衡: linux集群的一种常见方式,即由多台服务器组成一个服务器集合实现某个特定需求,其中每台服务器都是等价的,从而实现负载均摊的目的. 反向代理: 是指以代理服务器 ...

  8. centos 编译安装nginx

    这里选用的是nginx-1.10.1稳定版,其基础依赖库有gcc.gcc-c++.pcre.zlib和openssl. pcre.zlib和openssl这三个依赖库在安装nginx时无需编译安装,下 ...

  9. git submodule相关操作

    $ cd 项目目录 // 初始化 $ git init $ git submodule add https://github.com/XXXX // 普通更新 $ git submodule upda ...

  10. 问题: 在使用thinkphp自带分页类时,在设置尾页显示的最后一页时,用setConfig(“last”,”尾页”)来设置样式,发现无效。

    分析: 在分页类(/ThinkPHP/Library/Think/Page.class.PHP)里面有一个共有属性: public $lastSuffix = true; // 最后一页是否显示总页数 ...