利用ionic2制作手电筒App

ionic是一个开源而且比较不错的混合app开发框架,集html5+css+angularJS+cordova而开发的一个纯手机端app框架。使用ionic可以轻而易举的制作出非常漂亮的app。下面我就利用ionic2制作一个手电筒软件,控制手机的闪光灯。
1、使用ionic官方的native文档中提到的flashlight插件(手电筒)
其实ionic的插件也就可以说是cordova的插件,因为cordova插件是JS写的,而ionic中则是使用微软的typescript,因此ionic官方已经将相应的cordova插件转换为typescript的了。
根据官方文档的介绍,很简单我们就可以实现手电筒的功能了,首先我们得安装cordova的flashlight插件,其次还要安装ionic的flashlight插件,使用如下命令: 继续阅读利用ionic2制作手电筒App

ionic2签名打包

利用ionic2制作好的app,我们得通过打包后才能发布出去,不然的话app是无法通过验证的。在打包过程中,我们就得需要java的keytool进行生成证书,然后通过生成的证书,我们再将其导入到我们得app里面来实现一个签名。
1、进入ionic项目根目录(比如我的是h:/Ionic/flashlight)
cd h:/Ionic/flashlight
使用keytool生成证书
keytool -genkey -v -keystore key.keystore -alias you_name -keyalg RSA -keysize 2048 -validity 10000
首先会让你输入密码,如果你使用过linux或者mac的话,你就会知道,这里输入密码是不可见的(菜鸟们不要以为这是bug)。
其中key.keystore是证书的名称和后缀名,key则可以修改成你需要的名称,而后缀名不能随意更改,否则会出错。
you_name则为证书拥有者的名称,你可以自己起一个。 继续阅读ionic2签名打包

使用express+mysql实现分页效果

在mysql中SQL语句有一个为limit的条件筛选,limit中如果只传递一个值,则表示获取的条数,如果传递两个值则表示从第几条记录到第几条,如下:
limit 10 //这里是需要从数据库读出10条数据
limit 2,10 //这里这是从数据库中第3条数据开始取10条数据

1、使用limit实现分页(此方法不推荐,因为看上去不那么高大上)

不推荐就是因为不高大上,无法显示你是程序猿,因此你可以了解下就可以了! 继续阅读使用express+mysql实现分页效果

使用setTimeout出现内存溢出的解决办法

setTimeout就是一个定时器,它可以很容易地实现在规定时间内所要执行的函数或方法。但是我再setTimeout的使用过程中就出现了内存溢出的各种问题。下面我将使用一个当前时间与过去的某个时间差的计算方式来进行讲解setTimeout,首先来看逻辑思想部分。
对于任何编程语言,我们刚开始都需要进行需求分析,需求分析就是一个实现功能的想法或者步骤。
比如我在这个例子中将会使用本地当前时间减去我所获得的时间,得到它们之间的时间差。

1、获得当前时间

获得当前时间可以直接使用new Date(),即可获得当前本地或者说本机时间。

2、目前已知时间为:2017-05-20 00:29:10

3、如何对时间进行相减

其实在JavaScript中,时间是可以直接进行减法运算的,不过必须是JavaScript的Date日期格式,如果是其他的则不支持,比如我们直接使用2017-05-20 00:29:10 – 2017-05-20 00:28:10,这样的相减是会报错的。而且也是无法相减的,因为他们两个是字符串,无法进行相减。那该怎么办?
很简单,我们将2017-05-20 00:29:10转换为Date对象即可。而JavaScript的Date对象得到的日期格式应该是这样的“Sat May 20 2017 00:33:26 GMT+0800”,我们可以通过new Date()对我们上面的字符串“2017-05-20 00:29:10”进行转换,但是转换之前必须将此字符串,转换为如下格式“2017/05/20 00:29:10”,这样的格式才能被JavaScript的Date()识别。
如此一来,他们就可以进行相减了。

4、相减后获得的秒数该如何计算?

两个日期相减得到的是毫秒数,根据1000毫秒=1秒的计算方式,我们可以得到要将毫秒转换为秒,我们需要将当前的毫秒数除以(1000*60)再乘以60,由此可以得到公式(毫秒/(1000*60)*60就可以得到秒数)。

5、在页面上实时显示秒数

这里就进入了我们今天的正题了,使用setTimeout定时器即可实现,其用法setTimeout(code,time),其中code是即将执行的代码,time为执行的毫秒数。

6、使内存溢出的setTimeout

继续阅读使用setTimeout出现内存溢出的解决办法

ionic2 中图片缓存实列

混合应用程序现在面临的挑战之一是处理离线模式。是的,这意味着更多的工作,但这将给用户更好的体验,应用程序将工作更快。
建立我们的应用程序
首先安装和设置我们运行这些命令的环境:
安装ionic cli:
npm install ionic -g
创建一个新项目
ionic start OfflineApp
我们将使用ImgCache.js来缓存图像。这插件会做所有的辛勤工作。ImgCache.js是为Cordova开发的图像JS库,利用了HTML5的API。
要在我们的项目中安装,只需运行:
npm install imgcache.js –save
如你所知,Ionic使用Angular 2和typescript,所以我们应该为imgCache.js安装一个类型定义,但不幸的是目前并没有这方面相关的ts类(有一天我可能会写它或者可能是你会写,为了避免与typcript编译器的兼容,你需要在declarations.d.ts中添加下面代码。
declare module ‘imgcache.js’;
我们还需要安装这些插件:
– cordova-plugin-file
– cordova-plugin-file-transfer
继续阅读ionic2 中图片缓存实列

Cordova的图标及启动页的设置

其实在cordova中,启动页的设置也是通过一个插件来进行的,这个插件的名称叫做cordova-plugin-splashscreen,在ionic中就直接叫splashscreen,不论你使用任何开发框架,只要你使用了cordova进行应用打包之类的,你就必须得设置APP图标,APP图标的设置就必须要使用这款插件。废话不多说,关于这个插件大家可以去cordova官方查看,或者github。下面主要是讨论下此插件的config.xml配置与图标大小。
config.xml就是这个插件的一些配置参数,相关代码如下(如果你想要修改这些参数也是可以的): 继续阅读Cordova的图标及启动页的设置