ios JSPatch使用中调用一些function框架偏门AP
之前工作中遇到的一种事实需求,要求在js文件中实现照片功能的实现,同时在OC中控制,项目中借助了JSPatch。
代码中涉及到AVCaptureSession、AVCaptureDevice、AVCaptureDeviceInput、AVCaptureStillImageOutput等类。在调用下面这个函数来获取拍摄照片的Data数据时,JSPatchConvertor转换过来的js代码,始终不能成功。
- (void)captureStillImageAsynchronouslyFromConnection:(AVCaptureConnection *)connection completionHandler:(void (^)(CMSampleBufferRef imageDataSampleBuffer, NSError *error))handler;
因为这个函数回调block中的imageDataSampleBuffer实例为null。
下面来说遇到这一类情况,我的解决方法!
在oc代码自己创建一个组件类,until.h和until.m文件,在这个组件类中实现方法回调。
依然拿上面的例子说话,上面的block回调中我想要获取照片的Data数据,那么我在.h文件中
.m文件
其中我声明一个myblock的block用来获取stillImageOutput 中block线程中数据,这样做是为了解决block线程问题。
在js文件
首先要借助JSPatch声明一下自己创建的组件类, require('until');
因为是类方法直接调用,没问题能够拿到需要的照片data数据!
虽然这种方法不是很完美,是一种折中的方法,但是对于借助强大的JSPatch的项目来说,部分问题算是解决了!!!
个人编辑,分享给大家,不喜勿喷,谢谢!!