2015-10-27 6 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 запросить разрешение, удалите приложение и измените дату на несколько дней вперед и установите его обратно. Вы снова увидите запрос безопасности.