先闲谈说下最近的微信要出的小程序吧,感觉确实很牛逼,革命说不上吧但是也是一个新的大的机遇。不得不承认腾讯有两个相当好的平台,一个是QQ,一个是微信,毕竟人数基数大,任何新的东西都会带来相当多的机会和挑战。那个小程序好像是基于react native,也是一种混合架构。最近整理整理下混合架构的知识,有时间也好好学习去。
好了开始正题吧。
最近研究cordova通过原生实现自定义功能也是因为客户的一些需求吧,客户提出了要连拍的功能,而cordova自定义的接口里,代码是这样的:
- navigator.device.capture.captureImage(
- <span style="white-space:pre"> </span>CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureImageOptions options]
- );
里面有三个参数,前两个分别是代表调用成功,调用失败的回调函数,第三个是条件限制,但是只有是limit和mode的参数,分别表示的意义如下:
- limit: 在单个采集操作期间能够采集的图像数量最大值,必须设定为大于等于1(默认值为1)。
- mode: 选定的图像模式,必须设定为capture.supportedImageModes枚举中的值。
如此一来,每次默认是调用了原生自带的相机,效果就和原生的这句一样:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
达不到客户的需求,于是只好想想在原生里自己写一个这样的效果。其实这个需求难度并不大,但是自己在这方便也只是一个菜鸟,于是重新好好学习了下,这里很感谢一篇博文,还是一个妹子写的,写得非常详细,地址是:
http://blog.csdn.net/tangjiarao/article/details/48288875
具体方法应该很清楚了。然后我以我自己的例子说下我的流程吧:
1.Cordova里按钮的点击事件,主要是写好回调函数,将回调的值(相片地址)记录并写入预定地方加载展示出来: