2012-03-28 34 views
20

Cách nào nhất đáng tin cậy cách hiện tại để cho phép chia sẻ sở thích từ ứng dụng iOS?Tích hợp ứng dụng iOS với pinterest

API Pinterest chưa được công khai và chỉ đề xuất cách chia sẻ là nút web của họ.

+1

Tại sao không phải nút web? – mydogisbox

+1

@mydogisbox nút web là bất tiện cho người dùng vì bạn phải hiển thị chế độ xem web bổ sung và hiển thị một số loại trang được tối ưu hóa cho thiết bị di động trên trang web của bạn –

Trả lời

2

Kể từ ngày 20 tháng 5 năm 2013, Pinterest đã phát hành SDK iOS để ghim nội dung.

Khám phá their Developers site để biết thêm thông tin.

+0

có ai có url để lấy mẫu mã không? cần tìm thêm thông tin chi tiết về cách thực hiện nó – Kiddo

+0

Bạn đã vào liên kết trong bài đăng của tôi chưa? Nếu bạn nhấp vào "iOS SDK", bạn sẽ tìm thấy những gì bạn cần. –

2

Tôi cũng đã xem cao và thấp. Tôi thậm chí đã liên lạc với Nhóm Pinterest về một SDK. Điều gần nhất tôi đã tìm thấy là một trình bao bọc PHP trên github https://github.com/kellan/pinterest.api.php.

Nó không phải là giải pháp tốt nhất mặc dù bởi vì nó là api không chính thức và rất có thể sẽ phá vỡ.

11

Tôi đã tích hợp sở thích trong ứng dụng iPad của mình. Tuy nhiên, vì Pinterest chưa có API để đăng, tôi đã sử dụng phương pháp sau. Tôi chỉ cần tạo một trang Web HTML theo lập trình và thêm một nút Ghim vào trang đó theo lập trình. Sau đó, tôi hiển thị Chế độ xem web và cho phép người dùng nhấp vào Ghim một lần nữa. Đây là các bước giải thích nhiều hơn.

1) Tạo một WebViewController, có một UIWebView. Thêm nút Đóng, thêm thuộc tính UIWebViewDelegateProtocol, spinner, htmlString.

2) Tạo HTML theo chương trình để đặt vào UIWebView đó, khi người dùng nhấp vào nút "Ghim" trong ứng dụng của bạn. Trong trường hợp này, tôi đưa vào trang HTML các hình ảnh khác nhau cho các sản phẩm khác nhau.

- (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; 
} 

Đây là ví dụ về phương pháp tạo trang HTML của tôi.

3) Tạo phương thức để gọi khi người dùng chạm vào nút "Ghim" của bạn, cho biết webView với hình ảnh mà bạn sẽ đăng và nút "Ghim" trên UIWebView. Đây là ví dụ của tôi:

- (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) Đặt nút "Đóng" vào WebViewController để đóng. Ngoài ra, bạn có thể thêm các trình quay để theo dõi tải 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]; 
} 

T.B. Tôi đã sử dụng cùng một phương pháp để thêm nút +1 của Google Plus vào ứng dụng iPad. (Hiện tại, API này cũng không có API đăng bài, chỉ có API chỉ đọc)

+1

Hoạt động của nó ... cảm ơn rất nhiều. –

+0

Lưu ý đối với bất kỳ ai sử dụng mã này - hãy xem chuỗi được mã hóa phần trăm và độ dài của việc tạo chuỗi bằng chuỗi định dạng nhưng chỉ truyền trong chuỗi tĩnh. – Abizern

5

Nếu bạn chỉ muốn chia sẻ (ví dụ: pin trên bảng người dùng), bạn có thể sử dụng iphone-URL-Scheme và gọi ứng dụng Pinterest cùng với các thông số url (URL của trang để ghim), phương tiện (URL của hình ảnh để ghim) & mô tả (Mô tả trang được ghim). Trình bày một UIAlertView và chuyển tiếp chúng đến appstore để tải xuống ứng dụng Pinterest chính thức nếu người dùng chưa cài đặt nó.

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

Mã để mở Pinterest Application:

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 Phương pháp

- (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

Tôi đã thử mã này nhưng canOpenUrl luôn trả về NO, mặc dù tôi đã cài đặt Pinterest trên thiết bị của mình. Tôi nghĩ có lẽ đó là bởi vì tôi đã thực hiện chia sẻ funcions trên facebook, google +, ... Có cái gì tôi nên thêm vào phương pháp AppDelegate - (BOOL) ứng dụng: (UIApplication *) ứng dụng openURL: (NSURL *) url sourceỨng dụng: (NSString *) sourceApplication annotation: để mở ứng dụng Pinterest? – rosaMerino

+0

Điều này không còn hoạt động trong api mới. – Jeremie

0

Tôi tri ed để tích hợp Pinterest với Chương trình URL tùy chỉnh, cũng tải xuống ứng dụng Pinterest trên thiết bị của tôi, nhưng không được tích hợp với nó.

Và vấn đề là tôi không muốn sử dụng webView để tích hợp vì vậy có thể làm điều đó, tôi đã không tìm thấy bất kỳ ứng dụng nào trên kho ứng dụng có tích hợp pinterest.

Tôi đã googling cũng nhưng tất cả tồi tệ hơn, Snapguide cũng loại bỏ tích hợp pinterest từ ứng dụng của họ.

tôi đã sử dụng mã WebView để ghim hình ảnh, không cần phải mở trang web Pinterest đầy đủ,

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"]; 

Đây sẽ là dễ dàng nhưng với WebView và rằng tôi không muốn.

Các vấn đề liên quan