我正在为IOS构建一个Phonegap
应用。我已使用Cordova
相机plugin
进行个人资料照片上传。我的示例代码是:
navigator.camera.getPicture(that.imageDataSuccessCallback, that.imageDataErrorCallback, { quality: 10, destinationType: 1, encodingType: 0, allowEdit: true, correctOrientation: true, sourceType:0 });
当我点击该特定按钮时,我收到警告
THREAD WARNING: ['Camera'] took '290.006104' ms. Plugin should use a background thread.
它阻止了我的应用。任何人都可以建议如何解决这个问题吗?
答案 0 :(得分:6)
我不确定您是否应该关注290ms
,但如果您是,则可以执行以下操作:
由于navigator.camera.getPicture()
中的Camera.js
正在调用-(void)takePicture:(CDVInvokeUrlCommand*)command
中的CDVCamera.m
方法,您必须在那里添加线程。
打开CDVCamera.m
并在takePicture
方法的第一行之前添加以下内容:
[self.commandDelegate runInBackground:^{
在最后一行之后添加:
}];
所以看起来应该是这样的:
- (void)takePicture:(CDVInvokedUrlCommand*)command
{
[self.commandDelegate runInBackground:^{
NSString* callbackId = command.callbackId;
NSArray* arguments = command.arguments;
...
...
...
self.hasPendingOperation = YES;
}];
}
以下是使用后台模式look for THREADING构建Cordova插件的参考: