2013-02-01 18 views
5

i this bağlantıyı kullanarak Pinterest görüntüyü göndermek istediğiniz ama burada kendi Gereği göre küçük bit kodlama değiştirmek benim MainClass kodudurPinterest'te nasıl resim gönderilir?

- (void)pInterest { 
     UIImage *myImage; 
     myImage=imgView.image; 
     WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 
     webViewController.mypimage = myImage; 
    [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:webViewController animated:YES]; 
} 

Yani benim WebViewController görüntüyü geçtikten sonra artık benim WebViewController sınıfı kodu

olduğunu
- (void)viewDidLoad { 
    //imageview.image=mypimage; 
    [super viewDidLoad]; 
    NSString *description = @"Post your description here"; 

    // Generate urls for button and image 
    NSString *sUrl = [NSString stringWithFormat:@"http://d30t6wl9ttrlhf.cloudfront.net/media/catalog/product/Heros/mypimage"]; 
    // NSLog(@"URL:%@", sUrl); 
    NSString *protectedUrl = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridge CFStringRef)sUrl, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); 
    NSLog(@"Protected URL:%@", protectedUrl); 
    NSString *imageUrl = [NSString stringWithFormat:@"\"%@\"", sUrl]; 
    NSString *buttonUrl = [NSString stringWithFormat:@"\"http://pinterest.com/pin/create/button/?url=www.flor.com&media=%@&description=%@\"", protectedUrl, description]; 

    NSMutableString *htmlString = [[NSMutableString alloc] initWithCapacity:1000]; 
    [htmlString appendFormat:@"<html> <body>"]; 
    [htmlString appendFormat:@"<p align=\"center\"><a href=%@ class=\"pin-it-button\" count-layout=\"horizontal\"><img border=\"0\" src=\"http://assets.pinterest.com/images/PinExt.png\" title=\"Pin It\" /></a></p>", buttonUrl]; 
    [htmlString appendFormat:@"<p align=\"center\"><img width=\"400px\" height = \"400px\" src=%@></img></p>", imageUrl]; 
    [htmlString appendFormat:@"<script type=\"text/javascript\" src=\"//assets.pinterest.com/js/pinit.js\"></script>"]; 
    [htmlString appendFormat:@"</body> </html>"]; 
    [mywebview setBackgroundColor:[UIColor clearColor]]; 
    [mywebview loadHTMLString:htmlString baseURL:nil]; 
    [mywebview setOpaque:NO]; 
} 

benim webview hiçbir resim göstermek kodlama yukarıda kullanmak ve benim webview aşağıda ScreenShow benziyor zaman enter image description hereenter image description here

WebViewController'da görüntü görüntüsüne aynı görüntü örneğini atadığımda, onun çalışması imageview.image = mypimage;

Bazıları bana neden webveiw'nin görüntüyü göstermediğini önerebilir. Teşekkürler.

+1

Bunun düzgün bir düğme URL'si olmadığını söylemeliyim. Lütfen, soruyu sormadan önce yüklemeye çalıştığınız kaynak için url bulunduğundan emin olun. –

+0

ilk ekran görüntüsündeki pinit butonunu tıklattığımda, ikinci ekran görüntüsünü açacağım, bu da url.so hakkında bir problem olmadığı anlamına geliyor. – jamil

cevap

8

bu kodu kullanın ...... Umarım yardımcı olur.

- (IBAction)pinit:(id)sender { 
    [self postToPinterest]; 
} 

- (IBAction)closeWebVIew:(id)sender { 
    [webViewPinterest setHidden:YES]; 
} 

- (NSString*) generatePinterestHTML { 
    NSString *description = @"Post your description here"; 
NSURL* sUrl = [NSString stringWithFormat:@"http://4.bp.blogspot.com/-w4oTZjlpgwo/T5_pi-KJPuI/AAAAAAAAAoM/rKm3E0XCbgY/s1600/red_rose_flower3.jpg"];// pass your link here with your image name 

    NSLog(@"URL:%@", sUrl); 
    NSString *protectedUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)sUrl, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); 
    NSLog(@"Protected URL:%@", protectedUrl); 
    NSString *imageUrl = [NSString stringWithFormat:@"\"%@\"", sUrl]; 
    NSString *buttonUrl = [NSString stringWithFormat:@"\"http://pinterest.com/pin/create/button/?url=www.flor.com&media=%@&description=%@\"", protectedUrl, description]; 

    NSMutableString *htmlString = [[NSMutableString alloc] initWithCapacity:1000]; 
    [htmlString appendFormat:@"<html> <body>"]; 
    [htmlString appendFormat:@"<p align=\"center\"><a href=%@ class=\"pin-it-button\" count-layout=\"horizontal\"><img border=\"0\" src=\"http://assets.pinterest.com/images/PinExt.png\" title=\"Pin It\" /></a></p>", buttonUrl]; 
    [htmlString appendFormat:@"<p align=\"center\"><img width=\"400px\" height = \"400px\" src=%@></img></p>", imageUrl]; 
    [htmlString appendFormat:@"<script type=\"text/javascript\" src=\"//assets.pinterest.com/js/pinit.js\"></script>"]; 
    [htmlString appendFormat:@"</body> </html>"]; 
    return htmlString; 
} 

- (void) postToPinterest { 
    NSString *htmlString = [self generatePinterestHTML]; 
    NSLog(@"Generated HTML String:%@", htmlString); 
    webViewPinterest.backgroundColor = [UIColor clearColor]; 
    webViewPinterest.opaque = NO; 
    if ([webViewPinterest isHidden]) { 
     [webViewPinterest setHidden:NO]; 
    } 
    [webViewPinterest loadHTMLString:htmlString baseURL:nil]; 
    //[webViewPinterest loadHTMLString:@"<img src=images.png>" baseURL:nil]; 
} 

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    return YES; 
} 

- (void)webViewDidStartLoad:(UIWebView *)webView { 
    [busyIndicator startAnimating]; 
} 

-(void)webViewDidFinishLoad:(UIWebView *)webView { 
    [busyIndicator stopAnimating]; 
} 
+1

Son yazdığınız mesajı çoğaltılmış olarak işaretlediniz ve moderatör tarafından kaldırıldı, bu yüzden benim tazminatım, + 1.Lütfen bağlantıları bağlantı olarak göndermeyin. –

+0

@MicRO ok ve teşekkürler ...... :) –

+0

@MicRO teşekkürler ... :) –

7

bir yanıtı yayınlama önce, bana sunucuda görüntüyü göndermeden biz Pinterest doğrudan uygulamanın yerel görüntü sonrası edemediği fikrini verdi @Sudha için özel teşekkür ödemek istiyorum. Bu şekilde, sunucuya görüntü gönderdiğimde ve pinit düğmesine uygun URL Adresi atadığımda bu şekilde hareket etmek benim için işe yaradı. Şerefe! pinterest ile iOS uygulama entegrasyonu hakkında arama yapmaya başladığımda, bu konuda çok az yardım ve malzeme buldum. Ben geliştiricilerin çoğu this Yöntemi kullandığını düşünüyorum, ancak yukarıda belirtilen yöntemi kullandığında, yerel uygulama resimlerimi pinterest üzerinde yayınlamadı. Sonunda, yerel resimlerin pinterest uygulamasında yayınlanması en muhtemel olanlara yanıtlarımı göndermek istiyorum.

Adımlar

  1. Yeni Bir Sınıf WebViewController oluşturun ve ardından şeyler ekleyin.

    #import <UIKit/UIKit.h> 
    
    @interface WebViewController : UIViewController 
    { 
    IBOutlet UIActivityIndicatorView *UIHelper; 
    IBOutlet UIWebView *mywebview; 
    UIImage *mypimage; 
    } 
    @property(nonatomic,retain)UIActivityIndicatorView *UIHelper; 
    @property(nonatomic,retain)UIWebView *mywebview; 
    @property(nonatomic,retain) UIImage *mypimage; 
    -(IBAction)closeClicked:(id)sender ; 
    @end 
    
  2. Şimdi WebViewController.m dosya Kod

    #import "WebViewController.h" 
    
    @interface WebViewController() 
    
    @end 
    
    @implementation WebViewController 
    @synthesize UIHelper,mypimage,mywebview; 
    NSString *username; 
    
    -(IBAction)closeClicked:(id)sender { 
    [self dismissModalViewControllerAnimated:YES]; 
    } 
    - (void)webViewDidStartLoad:(UIWebView *)webView { 
        [UIHelper startAnimating]; 
        } 
    -(void)webViewDidFinishLoad:(UIWebView *)webView { 
    [UIHelper stopAnimating]; 
        } 
    - (void)viewDidLoad 
    { 
        username = @"j&D"; 
    [username retain]; 
    
    NSData *imageData = UIImageJPEGRepresentation(mypimage, 90); 
    NSString *urlString = @"ServerURl/cap.php"; 
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 
    NSString *boundary = @"---------------------------14737809831466499882746641449"; 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 
    NSMutableData *body = [NSMutableData data]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n",username] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[NSData dataWithData:imageData]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [request setHTTPBody:body]; 
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 
        NSLog(@"serverurl :%@",returnString); 
    
        NSString *htmlString = [self generatePinterestHTML]; 
        NSLog(@"Generated HTML String:%@", htmlString); 
        mywebview.backgroundColor = [UIColor clearColor]; 
        mywebview.opaque = NO; 
        if ([mywebview isHidden]) { 
        [mywebview setHidden:NO]; 
        } 
        [mywebview loadHTMLString:htmlString baseURL:nil]; 
        [super viewDidLoad]; 
        } 
        - (NSString*) generatePinterestHTML { 
         NSString *description = @"Post your description here"; 
         NSString *sUrl = [NSString stringWithFormat:@"SerVerUrl/cap/j&D.jpg"]; 
         NSLog(@"URL:%@", sUrl); 
         NSString *protectedUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)sUrl, NULL, (CFStringRef)@"!'\"();:@&=+$,/?%#[]% ",CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); 
         NSLog(@"Protected URL:%@", protectedUrl); 
         NSString *imageUrl = [NSString stringWithFormat:@"\"%@\"", sUrl]; 
         NSString *buttonUrl = [NSString stringWithFormat:@"\"http://pinterest.com/pin/create/button/?url=www.flor.com&media=%@&description=%@\"", protectedUrl, description]; 
    
         NSMutableString *htmlString = [[NSMutableString alloc] initWithCapacity:1000]; 
         [htmlString appendFormat:@"<html> <body>"]; 
         [htmlString appendFormat:@"<p align=\"center\"><a href=%@ class=\"pin-it-button\" count-layout=\"horizontal\"><img border=\"0\" src=\"http://assets.pinterest.com/images/PinExt.png\" title=\"Pin It\" /></a></p>", buttonUrl]; 
         [htmlString appendFormat:@"<p align=\"center\"><img width=\"400px\" height = \"400px\" src=%@></img></p>", imageUrl]; 
         [htmlString appendFormat:@"<script type=\"text/javascript\" src=\"//assets.pinterest.com/js/pinit.js\"></script>"]; 
         [htmlString appendFormat:@"</body> </html>"]; 
         return htmlString; 
         } 
         @end 
    
  3. kullanıcı webView görüntüsüyle, göndermek ve edeceğini gösteriyor senin "Pinit" düğmesini dokunduğunda aramak için bir yöntem oluşturun UIWebView'da "Pinit" düğmesi. Kendi Sunucu url ile ServerUrl değiştirin Üstü Code:

    -(void)pInterest 
    { 
        UIImage *myImage; 
        myImage=imgView.image; 
        WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 
        webViewController.mypimage = myImage; 
        [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:webViewController animated:YES]; 
    } 
    

    Not: Bu benim kodudur. sonunda

açıklama Daha net Make için, ben sağladık birkaç Ekran herhangi belirsizlikler ve doğabilecek yanlış anlamaları gidermek için.

enter image description hereenter image description here Herhangi bir sorgu için enter image description here

, yorum yapmaktan çekinmeyin!

+1

Teşekkürler @Bob Apple –

+0

Bob Apple ve Sudha Benim paylaşıma ekran paylaşımı sığdırmak için herhangi bir yolu var mı? Paylaşmak için 320X480 ? –

+0

evet bunu paylaşabilirsiniz @ NikunjR.Jadav – jamil

0

Sen cihazda Pinterest uygulamasına sahip olmaları gerekir, ancak Bunun için the Pinterest iOS SDK

Pinterest *_pinterest = [[Pinterest alloc] initWithClientId:pinterestKey]; 
[_pinterest createPinWithImageURL:@"http://placekitten.com/500/400" 
         sourceURL:@"http://placekitten.com" 
         description:@"Pinning from Pin It Demo"]; 

kullanabilirsiniz.

+0

Pinterest'de resim yüklemek için URL'm yok, pinterest'de nasıl galeri görüntüsü yüklemek ... –

İlgili konular