1

親のプリクラ事業の申請書を書いています。

彼らはすべてのイベント写真を自分のアカウントのさまざまなFlickrフォトセットにアップロードし、ウェブサイトにはすべてのイベントのコレクションを含むアルバムページがあり、イベントの人々がすべての写真ストリップと各個人を見ることができます。写真を撮ってからダウンロードしてください。

彼らのトラフィックのほとんどはモバイルデバイスからのものです(私の兄は、モバイルデバイスの画面だけでなく通常のコンピューターの画面にも合うように特別にWebサイトを作成しました)。ただし、画像のダウンロードと共有はアプリを介して簡単に行えます(AppleのiOS 6 UIActivityViewControllerとUICollectionViewのおかげです)。

だから私は写真を見たり共有したりするのを簡単にするアプリを書いています。私はそれのほとんどを完了し、うまく機能しています!ただし、現在はiOS 6のみをサポートしており、iOS 5を含めようとしています。UICollectionViewを使用してイベントの画像を表示しているため、iOS6のみをサポートしています。ただし、iOS 5にはコレクションビューが含まれていないため、すべての画像を表示するアルバムWebページのWebビューを使用します。

画像を選択すると、表示する画像のサイズを選択できます。サイズを選択すると、画像と2つのリンクを含む新しいタブが開きます。1つは画像をダウンロードし、もう1つはタブを閉じます。2つのリンクは順序付けられていないリスト内にあり、各リンクは独自のリストアイテムです。

これは、画像をダウンロードするためのリンクです。

<a href="/downloadImage.php?link=IMG_LINK&amp;title=TITLE">Download Image</a>

また、タブを閉じるリンクには次のタグがあります。

<a href="javascript:window.close();">

webViewのdelegateメソッドshouldStartLoadWithRequest:を使用して、次のことができることを確認しました。

if ([[[request URL] absoluteString] hasPrefix:@"/downloadImage.php"]) {
    UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil);
    return NO;
} else if ([[[request URL] absoluteString] hasPrefix:@"javascript"]) {
    [webView goBack];
    return NO;
} else { return YES; }

リンクがクリックされたときにそれらの機能を実行するのはどれですか...そうですか?ただし、これらは機能しません。そして、それらを機能させる方法がわかりません。
私は、このメソッドを使用する正しい方法、または可能であれば、Objective-Cを使用してhtmlが通常行うことと同等のことを行うための代替方法を探しています。

4

1 に答える 1

0

私は基本的に自分がやりたいことをする方法を考え出しました。画像サイズを選択したときにwebViewに新しいページを開かせるのではなく。このコードを使用して、画像をダウンロードするようにサイズリンクを設定しました。


// for links thats contain the displayImage.php do not allow user interaction
if ([[[request URL] absoluteString] hasPrefix:@"http://www.remembermephotobooths.com/displayImage.php?link="]) {
        //scan through the link url get the image link so that I can download it
        NSMutableArray *substring = [NSMutableArray new];
        NSScanner *scanner = [NSScanner scannerWithString:[[request URL] absoluteString]];
        [scanner scanUpToString:@"http://farm9" intoString:nil]; // Scan all characters after and including http://farm9 because all download links begin with http://farm9
        while(![scanner isAtEnd]) {
            NSString *string = nil;
            [scanner scanString:@"&title=" intoString:nil]; // Scan up to &title
            if([scanner scanUpToString:@"&" intoString:&string]) {
                [substring addObject:string];
            }
            [scanner scanUpToString:@".jpg" intoString:nil]; // Scan all characters up to and including .jpg because all images are jpegs
        }
        // save image to photo library
        UIImageWriteToSavedPhotosAlbum([UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:substring[0]]]], nil, nil, nil);
        // let the user know the image was saved
        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        [hud setMode:MBProgressHUDModeText];
        hud.labelText = @"Saved Image!";
        [hud setMinShowTime:1.5];
        [MBProgressHUD hideHUDForView:self.view animated:YES];
        [substring release];
        return NO; //this is what disables the links usual code and has it run my code instead
    }
    else { //all other links are enabled
        return YES;
    }
于 2012-12-18T18:54:21.023 に答える