【前言】

framework7确实做的很赞,但是一直各种原因没有做什么app,

这个感觉就像大厨遇到百年难见的好材料,不炒个菜憋的慌,

机缘巧合周一周二两个晚上做了一个简单app,先看下效果:

ios截图稍候奉上,

感觉还不错吧。

【原理】

app其中一类就是基于内容和基于数据的,恰好有个平台提供数据源:https://www.juhe.cn/

上去看了一眼,笑话的数据接口可以做一个简单的app,于是就开动了。

数据源:用三方平台提供的api。

framework7,http://framework7.io/kitchen-sink-material/

上去瞅了瞅,发现几个模块不错:left-panel,floating-action-button,cards,navbar等等,

ui层:framework7中的几个组件

这个app目前没有太多的和native交互的地方,只有一处,设置statusbar的色值,

所以需要用到cordova的一个plugin:statusbar,这个对比hbuilder中的nativejs,稍有不同

native层:statusbar插件

【开发过程】

首先需要下载framework7,地址:https://github.com/nolimits4web/framework7/

其中dist中为核心js css代码,

kitchen-sink-ios为ios实现代码,kitchen-sink-material为android实现代码,

由于ios和android在实现上有写差别,包括html不同,css不同,js不同,为了达到更好的效果所以需要两套代码,

但是总体思路是相同的,只是细微之处有些不同。

开发的时候可以看http://framework7.io/kitchen-sink-material/实现的效果,

对比kitchen-sink-material中具体页面的代码,

然后转变为自己需要的代码。

【枯燥的代码讲解】

1.开源和项目结构

github:https://github.com/uikoo9/_hpp_01_xiaoxiao

分为android和ios两套代码,所以对应两个文件夹,文件夹下目录结构相同,

外层config.xml:备份文件

android-platforms:android平台代码,暂时忽略

android-plugins:html和native交互的插件,类似hbuilder中的nativejs,暂时忽略

android-res:资源文件

android-www:项目代码,这部分才是具体开发的代码

config.xml:打包的配置文件

2.www文件夹结构

www文件夹下是具体的开发代码,可以参照上图,

看过上节文章的同学应该知道,framework7是单页面应用spa,也就是说只有一个入口html,

也就是入口index.html,对应的index.js和index.css,app对应所有页面的js css都应该写到这里。

3.重点是打包

代码暂且不讲了,自己看源码,应该可以懂,f7的组件之后有需要在单开一节讲吧。

本节重点是可以自己写完代码,用cordova运行,调试,打包发布。

【phonegap之坑】

按上节的内容,一直是使用的phonegap作为打包工具,

phonegap和cordova的区别,可以去百度看看,

简单的来说,cordova是kernel,phonegap相当与ide,

类似android sdk 和android studio的关系,

但是使用过程中发现这个ide不好用,然后就直接转向cordova了,

上节内容已经讲到phonegap的简单使用,运行,调试了。

这里说下phonegap的打包,

说下在线打包,这个功能和hbuilder有点类似,只不过hbuilder是集成在ide内了,phonegap是web形式,

https://build.phonegap.com/apps/

登录这个地址,如下图:

1.用adobe帐号登录,创建app

2.将代码打成zip然后上传

3.上传后会自动build,也可以自己手动build

4.ios需要上传key文件

1.周一晚上android打包还正常,安装后也正常使用,周二晚上安装后就一直停留在device is ready界面

2.android debug发现一直报错

百度,谷歌也没发现具体的解决办法,

而且云端打包的弊端就是不可控,报错的时候不知道怎么处理,思考再三觉得还是本地打包靠谱。

【cordova】

决定不使用phonegap的云端打包后就开始转向cordova,http://cordova.apache.org/

介绍之类的自行去百度,我只能说apache好牛,apache上的项目想要看完感觉得好多年,

程序员就是一条贼船,学不完的新技术,看不完的书,唉。

1.config.xml

desc:app名称的信息

index:入口页面

prefer:插件设置

plugin:插件引用

android:android平台相关设置,这里只设置了icon,没有设置启动页,启动页也可以在这里设置

access:白名单,刚开始的时候没有引入whitelist插件,倒是app访问http无法正常进行,后来添加插件添加权限即可

2.www和res

参照上面文件结构图,

www:代码

res:config.xml中配置的文件存放目录,这个也可以自己调整,只要能找到即可

3.cordova intro

官网的getstarted,比较简单明了,貌似也没有什么问题

4.cordova create

以后可以不需要命令创建,以本项目为模版,保留www和res文件夹,以及config.xml即可

5.cordova platform add android

这个需要本地有android和ios的环境,android sdk即可,安装请百度,ios稍候补充。

6.cordova run android

run,就是将app发送到手机并运行,需要数据线连接手机,并开启usb调试

7.cordova serve

和上一节phonegap serve相同,在本地启动一个serve,方便初期在浏览器调试

8.cordova build

浏览器调试完毕,真机调试完毕后就是打包了,build有几个命令,可以使用cordova help build查看

【debug】

debug是必不可少的环节

1.浏览器调试

刚开始功能开发的时候,可以使用cordova serve命令,本地开启serve然后浏览器调试,很方便

2.真机调试

当功能开发完毕后,需要真机校验和调试,这个时候可以用cordova run,将app安装到真机中,

但是调试就发愁了,具体可以参考这篇文章:http://rensanning.iteye.com/blog/2018417

结论是,gapdebug比较好用,具体使用详见官网。

【梳理流程】

www下代码开发

cordova serve浏览器调试

config.xml中引用res,引用plugin

cordova platform add android生成平台和plugin

cordova run android真机调试,配合gapdebug

【end】

至此,应该可以在我代码基础上,自己将流程跑一遍了。

也算是cordova+framework7入门了。

源码:https://github.com/uikoo9/_hpp_01_xiaoxiao

转载:http://uikoo9.com/book/chapterDetail/109

(二)cordova+framework7入门——笑笑APP的更多相关文章

  1. Entity Framework7 入门之全功能.NET版本下使用EF7(含源码)另附数据迁移常见错误处理

    Entity Framework7 入门之全功能.NET(Console, WinForms, WPF等)使用EF7 昨天,我们介绍了EF的新特性和开发计划,如果你还不了解,请移步 Entity Fr ...

  2. Cordova+ionic 开发hybird App --- 开发环境搭建

    Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...

  3. SLAM+语音机器人DIY系列:(二)ROS入门——4.如何编写ROS的第一个程序hello_world

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  4. Cordova 快速入门记录

    本篇文章由:http://xinpure.com/cordova-quick-start-recording/ 记一笔 Cordova 官网入门文档 Get Started Fast,言简意该.通俗易 ...

  5. Bmob移动后端云服务平台--Android从零開始--(二)android高速入门

    Bmob移动后端云服务平台--Android从零開始--(二)android高速入门 上一篇博文我们简介何为Bmob移动后端服务平台,以及其相关功能和优势. 本文将利用Bmob高速实现简单样例,进一步 ...

  6. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  7. Cordova 打包 Android release app 过程详解

    Cordova 打包 Android release app 过程详解 时间 -- :: SegmentFault 原文 https://segmentfault.com/a/119000000517 ...

  8. webpack入坑之旅(二)loader入门

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack 在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  9. Cordova热更新和App升级 - 简书

    原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇 ...

随机推荐

  1. .net字符串数组查找方式效率比较

    下面是代码: static void Main(string[] args) { string[] arr = new string[] { "AAA", "BBBB&q ...

  2. .NET ORM 的 “SOD蜜”--零基础入门篇

    PDF.NET SOD框架不仅仅是一个ORM,但是它的ORM功能是独具特色的,我在博客中已经多次介绍,但都是原理性的,可能不少初学的朋友还是觉得复杂,其实,SOD的ORM是很简单的.下面我们就采用流行 ...

  3. Spirit - 腾讯移动 Web 整体解决方案

    Spirit 并不是一个具体的框架或者工具,但是她是移动端一系列解决方案的整合与聚拢.她是腾讯 Alloyteam 开发团队在移动开发项目中通过大量实践.归纳.总结提炼而成,最终沉淀下来的一个体系,真 ...

  4. MVC的优点及不足之处

    1. MVC的优点 (1) 可以为一个模型在运行时同时建立和使用多个视图.变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步. (2) 视图与控制器的可 ...

  5. 我的第一节Android课

    我的第一节安卓课程,今天非比寻常的一天,我开始了我程序猿之路的第一节安卓课程,安卓课程只是我的一个兴趣班,我的本专业是java开发,因为喜欢做一个属于自己的一个手机APP,就选多个一样技能,毕竟十八般 ...

  6. c中的数据类型、常量、变量

    一. 数据 1. 什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文 ...

  7. java 实现(代码) -- 水仙花数 + 杨辉三角形

    /* 在控制台输出所有的“水仙花数” 水仙花:100-999 在以上数字范围内:这个数=个位*个位*个位+十位*十位*十位+百位*百位*百位 例如:xyz=x^3 +y^3 +z^3 怎么把三位数字拆 ...

  8. 数据存储与IO(一)

    应用程序沙盒简介:iOS应用程序只能在系统为它分配的文件区域内读写文件,这个区域就是此应用程序的沙盒,Application目录下的GUID文件夹就是沙盒,这个文件夹是系统随机命名的.程序所有的非代码 ...

  9. 一位资深开发的个人经历 【转自百度贴吧 java吧 原标题 4年java 3年产品 现在又开始做android了】

    楼主2007年从一家天津的三流大学毕业.毕业前报了一个职位培训,毕业后可以推荐工作.因为推荐的公司都是北京的,所以就来北京了. 找了一个月工作,没有找到要我的,就在出租屋里宅了起来,打着考研的旗号,又 ...

  10. 什么是Java实例初始化块

    在本篇文章,我将会使用一个例子展示什么是实例变量初始化块,实例初始化块和静态初始化块,然后说明在Java中实例初始化块是如何工作的. 执行顺序 查看下面的代码,你知道哪个先执行吗? package s ...