как добавить изображение из хранилища фотографий в UIWebview - PullRequest
0 голосов
/ 07 сентября 2010

Есть ли способ отобразить изображение в UIWebview из хранилища фотографий iphone

Ответы [ 4 ]

2 голосов
/ 01 июля 2013

Может быть, это подходящий код в загружаемом изображении,

- (BOOL)webView:(UIWebView*)webViewRef shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

    //we are listening out for links being click
    if (navigationType == UIWebViewNavigationTypeLinkClicked) 
    {

        NSURL *URL = [request URL]; //Get the URL


        if ( [[URL scheme] isEqualToString:@"objc"] ) {


            webView = webViewRef;


            SEL method = NSSelectorFromString( [URL host] );

            if ([self respondsToSelector:method])
            {

                [self performSelector:method withObject:nil afterDelay:0.1f];
            }

            return NO;
        }

    }

   return YES;
}
-(void)takePicture
{

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.delegate = self;


    id delegate = [[UIApplication sharedApplication] delegate];
    [[delegate viewController] presentModalViewController:imagePicker animated:YES];

    [imagePicker release];

}

#pragma mark - Image Picker

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];


    NSData *flatImage = UIImageJPEGRepresentation(image, 0.1f);



    NSString *image64 = [flatImage base64EncodedString];


    NSString *js = [NSString stringWithFormat: @"processImage('data:image/jpeg;base64,%@')", image64];
    [webView stringByEvaluatingJavaScriptFromString:js];


    [picker dismissModalViewControllerAnimated:YES];

}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {


    [picker dismissModalViewControllerAnimated:YES];
}
1 голос
/ 07 сентября 2010

в вашем делегате средства выбора изображений, сохраните файл локально, фрагмент кода, не завершенный

- (void)imagePickerController:(UIImagePickerController *)picker 
                                   didFinishPickingMediaWithInfo:(NSDictionary *)info   {

        NSString *path = [[NSBundle mainBundle] bundlePath];
        NSData *data = UIImageJPEGRepresentation( [info objectForKey:@"UIImagePickerControllerOriginalImage"] , 1.0);
        NSString *fullPath = [path stringByAppendingPathComponent:@"image_tmp.jpg"];
        if ([[NSFileManager defaultManager] createFileAtPath:fullPath contents:data attributes:nil] ) {
                    NSLog([NSString stringWithFormat:@"file successfully written to path %@",fullPath],nil);
        }
 }

в вашем веб-представлении, установите базовый путь страницы HTML, которую вы собираетесь загрузить, на тот жепуть, используемый для сохранения файла изображения.

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];
1 голос
/ 28 января 2013

Если вы просто хотите отобразить изображение, приведенный ниже код работает просто отлично (используя UIImagePickerDelegate)

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    [_youWebView loadData:UIImagePNGRepresentation([info objectForKey:UIImagePickerControllerEditedImage]) MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil];
}

надеюсь, это поможет.

0 голосов
/ 07 сентября 2010

Да, сначала вы должны использовать UIImagePickerController. Это приведет к появлению нового окна с iPhone, и пользователю будет предложено выбрать фотографию.

Когда они выбирают фотографию, вы можете получить доступ к этой фотографии, вы можете либо отменить сборщик, либо пользователь может продолжить сбор фотографий.

Вам не разрешен прямой доступ к фотографиям пользователей, и вы не сможете получить доступ к их фотографиям, предварительно спросив пользователя. Это имеет смысл, как пользователь, я бы не хотел, чтобы разработчики пробирались в мою библиотеку фотографий и загружали мои фотографии в фоновом режиме.

Чтобы добавить их в UIWebView, вам необходимо установить для [UIWebView basePath] значение (каталог документов, в котором вы сохранили фотографию из описанного выше процесса), у меня это работает, поиск в стеке для UIWebView Basepath или проверка документация.

Ура, Джон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...