2012-03-28 14 views
20

Jaki jest obecnie najbardziej wiarygodny sposób, aby zezwolić na dzielenie się efektami z aplikacji na iOS?Integracja aplikacji iOS z pinterestem

Interfejs API Pinteresta nie jest jeszcze dostępny publicznie, a sugerowany sposób udostępniania jest tylko jego przyciskiem internetowym.

+1

Dlaczego nie przycisk web? – mydogisbox

+1

Przycisk @mydogisbox jest niewygodny dla użytkownika, ponieważ musisz wyświetlać dodatkową przeglądarkę internetową i wyświetlać stronę zoptymalizowaną pod kątem urządzeń mobilnych na swojej stronie internetowej –

Odpowiedz

2

Od 20 maja 2013 r. Pinterest opublikował pakiet SDK na iOS do przypinania treści.

Aby uzyskać więcej informacji, sprawdź numer their Developers site.

+0

ktoś ma adres URL, aby pobrać przykładowy kod? musisz znaleźć więcej informacji, jak to zrobić. – Kiddo

+0

Czy przejrzałeś link w moim poście? Jeśli klikniesz "iOS SDK", powinieneś znaleźć to, czego potrzebujesz. –

2

Wyglądam też na wysoki i niski. Kontaktowałem się z zespołem Pinteresta w sprawie SDK. Najbliższą rzeczą, którą znalazłem jest opakowanie PHP na github https://github.com/kellan/pinterest.api.php.

To nie jest najlepsze rozwiązanie, ponieważ jest to nieoficjalne api i najprawdopodobniej pęknie.

11

Zrobiłem interesującą integrację w mojej aplikacji na iPada. Ale ponieważ Pinterest nie ma jeszcze API do publikowania, użyłem następującej metody. Po prostu programowo utworzę stronę internetową w formacie HTML i programowo przyporządkowałem przycisk Przypnij do tej strony. Następnie wyświetlam widok sieciowy i pozwalam użytkownikowi kliknąć ponownie Przypnij. Są to bardziej wyjaśnione kroki.

1) Utwórz kontroler WebViewController z interfejsem UIWebView. Dodaj przycisk Zamknij, dodaj właściwość UIWebViewDelegateProtocol, spinner, htmlString.

2) Generuj HTML programowo, aby umieścić go w tym interfejsie użytkownika, gdy użytkownik kliknie przycisk "Przypnij" w swojej aplikacji. W tym przypadku umieszczam na stronie HTML różne obrazy różnych produktów.

- (NSString*) generatePinterestHTMLForSKU:(NSString*)sku { 
NSString *description = @"Post your description here"; 

// Generate urls for button and image 
NSString *sUrl = [NSString stringWithFormat:@"http://d30t6wl9ttrlhf.cloudfront.net/media/catalog/product/Heros/%@-1.jpg", sku]; 
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>"]; 
return htmlString; 
} 

To jest przykład mojej metody generowania strony HTML.

3) Utwórz metodę wywoływania, gdy użytkownik kliknie przycisk "Przypnij", który pokazuje, że webView z obrazem, który opublikujesz, oraz przycisk "Przypnij" na UIWebView. To jest mój przykład:

- (void) postToPinterest { 

NSString *htmlString = [self generatePinterestHTMLForSKU:self.flProduct.sku]; 
NSLog(@"Generated HTML String:%@", htmlString); 
WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 
webViewController.htmlString = htmlString; 
webViewController.showSpinner = YES; 

[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:webViewController animated:YES]; 
} 

4) Umieść przycisk "Zamknij" na swoim kontrolerze WebViewController, aby go zamknąć. Możesz również dodać spinner, aby śledzić ładowanie UIWebView.

- (IBAction)closeClicked:(id)sender { 
[self dismissModalViewControllerAnimated:YES]; 

}

- (void)webViewDidStartLoad:(UIWebView *)webView { 
if (showSpinner) { 
    // If we want to show Spinner, we show it everyTime 
    [UIHelper startShowingSpinner:self.webView]; 
} 
else { 
    // If we don't -> we show it only once (some sites annoy with it) 
    if (!spinnerWasShown) { 
     [UIHelper startShowingSpinner:self.webView]; 
     spinnerWasShown = YES; 
    } 
} 
} 

-(void)webViewDidFinishLoad:(UIWebView *)webView { 
    [UIHelper stopShowingSpinner]; 
} 

P.S. Użyłem tej samej metody, by dodać przycisk +1 Google Plus do aplikacji na iPada. (Nie ma też interfejsu API do publikowania, tylko w tej chwili tylko do odczytu API)

+1

Działa ... dziękuję bardzo. –

+0

Uwaga dla każdego, kto używa tego kodu - uważaj na zakodowany procentowo ciąg znaków, a także na szykowność tworzenia ciągów znaków za pomocą ciągów formatów, a jedynie przekazywanie statycznego ciągu znaków. – Abizern

5

Jeśli chcesz tylko udostępnić (np. Przypiąć na tablicy użytkownika), możesz użyć iphone-URL-Scheme i zadzwonić do aplikacji Pinterest wraz z parametrami URL (URL strony stykowy) nośnika (URL obrazu do styku) & opis (Opis strony przypięte). Przedstaw UIAlertView i przekaż je do sklepu, aby pobrać oficjalną aplikację Pinterest, jeśli użytkownik jej nie zainstalował.

referencyjny: http://wiki.akosma.com/IPhone_URL_Schemes#Pinterest

Kod otworzyć Pinterest Applicaiton:

NSURL *url = [NSURL URLWithString:@"pinit12://pinterest.com/pin/create/bookmarklet/?url=URL-OF-THE-PAGE-TO-PIN&media=URL-OF-THE-IMAGE-TO-PIN&description=ENTER-YOUR-DESCRIPTION-FOR-THE-PIN"]; 
if ([[UIApplication sharedApplication] canOpenURL:url]) { 
    [[UIApplication sharedApplication] openURL:url]; 
}else { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Pinterest" message:@"Would you like to download Pinterest Application to share?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Continue", nil]; 
    [alert show]; 
} 

UIAlertViewDelegate Method

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (buttonIndex == 1){ 
     NSString *stringURL = @"http://itunes.apple.com/us/app/pinterest/id429047995?mt=8"; 
     NSURL *url = [NSURL URLWithString:stringURL]; 
     [[UIApplication sharedApplication] openURL:url]; 
    } 
} 
+2

Próbowałem tego kodu, ale canOpenUrl zawsze zwraca NO, chociaż już zainstalowałem Pinterest na moim urządzeniu. Myślę, że może dlatego, że mam już zaimplementowane funkcje udostępniania na facebooku, google +, ... Czy jest coś, co powinienem dodać do metody AppDelegate - (BOOL): aplikacja (UIApplication *) openURL: (NSURL *) url sourceApplication: (NSString *) adnotacja sourceApplication: aby otworzyć aplikację Pinterest? – rosaMerino

+0

To nie działa już w nowym interfejsie API. – Jeremie

0

I Tri Aby zintegrować Pinterest z niestandardowym schematem URL, pobierz też aplikację Pinterest na moim urządzeniu, ale nie integruj z nią.

Chodzi o to, że nie chcę używać webView do integracji, więc jest to możliwe, nie znalazłem żadnej aplikacji w sklepie z aplikacjami, która ma integrację z PHP.

Zrobiłem googling również, ale co gorsza, Snapguide również usunąć integrację pinterest z ich aplikacji.

użyłem kodu Webview przypiąć zdjęcie, nie ma potrzeby, aby otworzyć cały serwis Pinterest,

NSString *urlStr =[NSString stringWithFormat:@"http://pinterest.com/pin/create/bookmarklet/?url=www.<domainname>.com&media=http://<domainname>.files.com/hello.jpg?w=495&description=hello"]; 

Byłoby to łatwe, ale z WebView i że nie chcę.