如何与URL Shema分享UIImage到Instagram应用程序?

时间:2015-05-22 14:35:54

标签: ios objective-c uiimage instagram instagram-api

我有我创建的图像,我想通过Instagram应用程序分享它,我应该怎么做?

 - (IBAction)instagramShareTapped:(UIButton *)sender {
   UIImage *img = self.myImage;
   NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://**WHAT_SHOULD_I_PUT_HERE?**]];
   if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
     [[UIApplication sharedApplication] openURL:instagramURL];
   }
}

2 个答案:

答案 0 :(得分:2)

以下是我如何使用URL Schema与Instagram分享UIImage:

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    UIImage *image = // your image that you want share
    [library writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock:^(NSURL *assetURL, NSError *error) {

      NSString *escapedString = [assetURL.absoluteString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]];
      NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@", escapedString]];

      if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
        [[UIApplication sharedApplication] openURL:instagramURL];
      } else {
        NSLog(@"Instagram app not found.");
      }
    }];

答案 1 :(得分:-1)

instagram documentation

上找到
  

文档互动

     

如果您的应用程序创建照片并且您希望用户使用Instagram共享这些照片,则可以使用文档交互API在Instagram的共享流程中打开您的照片。

     

您必须先以PNG或JPEG(首选)格式保存文件,并使用文件扩展名“.ig”。使用iOS文档交互API,您可以触发Instagram打开的照片。我们的文档交互UTI的标识符是com.instagram.photo,它符合public / jpeg和public / png UTI。有关详细信息,请参阅Apple文档文章:预览和打开文件以及UIDocumentInteractionController类参考。

     

或者,如果您只想在应用程序列表中显示Instagram(而不是Instagram以及任何其他符合公共/ jpeg标准的应用程序),您可以指定扩展类igo,其类型为com.instagram.exclusivegram。

     

触发后,Instagram会立即向用户显示我们的过滤器屏幕。图像预先加载并适合Instagram的大小。为了获得最佳效果,Instagram更喜欢打开640像素×640像素的JPEG。如果图像较大,则会动态调整大小。

     

要在照片中包含预先填充的标题,可以将文档交互请求中的注释属性设置为包含“InstagramCaption”键下的NSString的NSDictionary。此功能在Instagram 2.1及更高版本中可用。