似乎 Phonegap 会自动将 EXIF 数据添加到用相机拍摄的 Jpeg 图像中,从而触发位置服务警报。有两种方法可以防止这种情况发生:
1 - 为捕获的图片格式指定PNG(默认 phonegap 使用包含 EXIF 数据的 JPEG)
encodingType=navigator.camera.EncodingType;
function capturePhotoEdit() {
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { encodingType: encodingType.PNG, destinationType: destinationType.DATA_URL });
}
2 - 如果您想使用 JPEG 而不是 PNG 图像,则必须在 CordovaLib/Classes/CDVCamera.m中的 312 和 322 行之间注释掉这些行。这是将 EXIF 数据添加到图片的代码。
NSDictionary *controllerMetadata = [info objectForKey:@"UIImagePickerControllerMediaMetadata"];
if (controllerMetadata) {
self.data = data;
self.metadata = [[NSMutableDictionary alloc] init];
NSMutableDictionary *EXIFDictionary = [[controllerMetadata objectForKey:(NSString *)kCGImagePropertyExifDictionary]mutableCopy];
if (EXIFDictionary) [self.metadata setObject:EXIFDictionary forKey:(NSString *)kCGImagePropertyExifDictionary];
[[self locationManager] startUpdatingLocation];
return;
}