0

我想将图像保存到 ios 相机胶卷中。它在模拟器中运行良好。

但在实际的 iPhone 上,我没有得到这样的权限提示:

-  图片  -

- (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];
}

有什么办法可以强制吗?

谢谢。干杯。

4

3 回答 3

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];
}
于 2015-10-27T07:36:22.673 回答
1

iOS 只请求一次许可。即使您重新安装应用程序,也不会再次询问权限,它只会使用旧的偏好。

要强制 iOS 请求许可,请卸载您的应用程序并提前几天更改日期并重新安装。您将再次看到安全提示。

于 2016-05-11T00:17:57.163 回答
0

一旦用户允许它的权限,iOS 将不会再次请求相同的权限权限,除非您再次卸载并重新安装。

或者,如果您想检查权限,请转到设置并查看您的应用是否打开了照片的权限。

于 2015-10-27T07:39:21.793 回答