2015-10-27 79 views
0

我想将图像保存到ios相机胶卷。它在模拟器中运行良好。iOS的权限访问照片不能在设备上工作

,但实际的iPhone我没有得到许可提示是这样的:

-- image --

- (void)saveImageToCameraRoll:(CDVInvokedUrlCommand*)command 
{ 
    CDVPluginResult* pluginResult = nil; 

    NSString *filename = [command argumentAtIndex:0]; 
    NSString *tmpFile = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", filename]]; 


    UIImage *image = nil; 
    image = [UIImage imageWithContentsOfFile:tmpFile]; 


    ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus]; 

    if(status != ALAuthorizationStatusAuthorized || image == nil){ 
     pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"noaccess"]; 
    } 
    else{ 
     UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 
     pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"saved"]; 
    } 

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; 
} 

有没有什么办法,迫使它?

谢谢。干杯。

回答

2

如果您拒绝了权限,那么您无法通过强制获得提示。你可以检查你是否有权访问。如果你没有访问权限,那么你可以要求用户在设置应用程序中针对你的应用程序授予权限..

像这样。

ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus]; 

if (status != ALAuthorizationStatusAuthorized) { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Attention" message:@"Please give this app permission to access your photo library in your settings app!" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil, nil]; 
    [alert show]; 
} 
0

一旦用户允许有它的权限,除非你卸载的iOS不会问同样的许可权限下一次再和重新安装。

或者如果你想检查权限转到设置,并看看你的应用程序是否已启用照片的权限。

1

iOS只请求一次权限。即使您重新安装该应用程序,该权限也不会再被询问,它只会使用旧的首选项。

要强制iOS要求获得权限,请卸载您的应用程序并在未来几天更改日期并将其重新安装回去。您将再次看到安全提示。

相关问题