Как сохранить изображение в фотогалерею с помощью JavaScript / Obj-C на iPad? - PullRequest
0 голосов
/ 29 июня 2011

В настоящее время я разрабатываю небольшое приложение для рисования на основе JavaScript на iPad.Я просто обернул его в UIWebView как this .Дело в том, что я не могу понять, как сохранить изображение из приложения, чтобы оно хранилось на фотографиях iPad.

Есть ли какой-нибудь простой способ связать код JavaScript с Objective-C?Думаю, я мог бы передать строку, содержащую данные изображений PNG со стороны JS, а затем использовать Objective-C, чтобы каким-то образом сохранить ее в фотогалерее.

1 Ответ

1 голос
/ 29 июня 2011

Да, существует способ связать JavaScript из UIWebView с кодом Obj-C.

Установите свой делегат UIWebView и вставьте его в делегат следующим способом

//
// Map links starting with file://
//            ending with #action
// with the action of the controller if it exists.
//
// Open other links in Safari.
- (BOOL)webView: (UIWebView*)webView shouldStartLoadWithRequest: (NSURLRequest*)request navigationType: (UIWebViewNavigationType)navigationType {
    NSString *fragment, *scheme;

    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        [webView stopLoading];
        fragment = [[request URL] fragment];
        scheme = [[request URL] scheme];

        if ([scheme isEqualToString: @"file"] && [self respondsToSelector: NSSelectorFromString(fragment)]) {
            [self performSelector: NSSelectorFromString(fragment)];
            return NO;
        }

        [[UIApplication sharedApplication] openURL: [request URL]];
    }

    return YES;
}

Затем вы можете написать методы Obj-C, которые будут обрабатывать запрос.Например.В вашем веб-представлении у вас может быть кнопка с тегом ссылки, например

<a href="file://myGreatApp.com/saveImage">Click Me to Save Image </a>

. Схема «file», фрагмент «saveImage».Теперь вы можете написать метод Obj-C

-(void)saveImage;

, который будет вызываться каждый раз, когда пользователь нажимает на ссылку.

Редактировать: Если вы хотите пройтистроковые параметры в вашем методе, просто добавьте их к URL-адресу вашего фрагмента, используя javascript.Таким образом, вместо этого у вас может быть

<a href="file://myGreatApp.com/saveImage*asdgo8asdgl35lkjasgd807ll12">Click Me to Save Image </a>

Затем в вашем коде Obj-C разбейте фрагмент на символ '*'.Используйте первую половину в качестве селектора, а вторую - в качестве параметра.

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