2014-05-22 1 views
2

IOS 용 Phonegap 앱을 만들고 있습니다. 나는 프로필 사진 업로드의 경우 Cordova 카메라 plugin을 사용했습니다. 내 샘플 코드이다 : 그것은 내 응용 프로그램을 차단 나사산 경고 : [ 'Camera'] '는'290.006104 '밀리 초입니다. 플러그인은 배경 스레드를 사용해야합니다.

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. 

한다. 아무도이 문제를 해결하는 방법을 제안 할 수 있습니까?

답변

6

난 당신이 290ms에 대해 관심을 가져야 모르겠어요하지만 당신이 있다면, 당신은 다음을 수행 할 수 CDVCamera.m에서 -(void)takePicture:(CDVInvokeUrlCommand*)command 메소드를 호출한다 Camera.js에서 navigator.camera.getPicture() 때문에

당신이 스레딩 추가해야합니다 그곳에.

열기 CDVCamera.mtakePicture 방법의 첫 번째 행하기 전에 다음 사항을 추가

}]; 

은 그래서 다음과 같아야합니다 :

[self.commandDelegate runInBackground:^{ 

최종 마지막 행 다음에 이것을 추가

- (void)takePicture:(CDVInvokedUrlCommand*)command 
{ 
    [self.commandDelegate runInBackground:^{ 
     NSString* callbackId = command.callbackId; 
     NSArray* arguments = command.arguments; 

     ... 
     ... 
     ... 

     self.hasPendingOperation = YES; 
    }]; 
} 

다음은 Cordova 플러그인을 배경 모드 look for THREADING :