ios iphone挂钩直接打开instagram而不显示UIDocumentInteractionController

时间:2013-05-20 10:45:23

标签: ios instagram uidocumentinteraction uidocument

我在我的应用中通过Instagram整合共享图片。我已经阅读了他们的documentation

似乎我需要使用iOS UIDocumentInteractionController来允许这个(我知道它允许访问我应用程序的沙盒中的文件)。

深入挖掘,我遇到了这个library,这让事情变得非常简单。

我遇到的问题是它提供了操作表(只有一个按钮--Losk ...)如何使用Instagram挂钩,使用UIDocumentInteractionController而不显示操作表。我遇到了这个question,这几乎是一样的,但它过时了没有答案。

3 个答案:

答案 0 :(得分:6)

我使用一个非常简单的分享开放Instagram流程。

  • 我将图片本地保存到照片
  • 然后我用以下网址打开Instagram: instagram:// library?AssetPath = assets-library

这将Instagram 直接打开到照片库。由于照片很久以前就已保存,因此新照片可以作为库中的第一张照片显示。

答案 1 :(得分:5)

我自己搜索过这个,我不认为可以在不显示操作表的情况下使用UIDocumentInteractionController,也不用在不使用UIDocumentInteractionController的情况下与instagram共享图像。

这导致了不可避免的行动表。

我理解为什么他们这样设计它(你不会在不知不觉中留下一个应用程序)但在很多情况下它会导致恼人的UI设计。

答案 2 :(得分:2)

Instagram documentation中似乎未提到。但是,我只是确认@sabiland's答案在Swift 4.2 iOS 12中仍然可以使用。这是一些示例代码:

<select name="skuAndSize" id="skuAndSize" class="ncss-btn fs16-sm ncss-base pb3-sm prl5-sm pt3-sm css-1rsed2n">
  <option value="" disabled="">Select Size</option>
  <option value="22348626:7" disabled="">US 7</option>
  <option value="22348625:7.5" disabled="">US 7.5</option>
  <option value="22348624:8" disabled="">US 8</option>
  <option value="22348621:8.5" disabled="">US 8.5</option>
  <option value="22348619:9" disabled="">US 9</option>
  <option value="22348623:9.5">US 9.5</option>
  <option value="22348618:10">US 10</option>
  <option value="22348622:10.5">US 10.5</option>
  <option value="22348635:11">US 11</option>
  <option value="22348634:11.5" disabled="">US 11.5</option>
  <option value="22348633:12">US 12</option>
  <option value="22348632:12.5" disabled="">US 12.5</option>
  <option value="22348631:13">US 13</option>
  <option value="22348630:14" disabled="">US 14</option>
  <option value="22348629:15" disabled="">US 15</option>
</select>

Original code source

您还必须确保func postImageToInstagram(image: UIImage) { UIImageWriteToSavedPhotosAlbum(image, self, #selector(self.image(image:didFinishSavingWithError:contextInfo:)), nil) } @objc func image(image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer) { if let err = error { print(err) } let urlString = "instagram://library?AssetPath=assets-library" let url = URL(string: urlString)! if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: nil) } else { let alertController = UIAlertController(title: "Error", message: "Instagram is not installed", preferredStyle: .alert) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) self.present(alertController, animated: true, completion: nil) } } 有instagram查询方案。

  

为了使您的应用程序使用Instagram的自定义URL方案,您可以通过在应用程序的Info.plist的LSApplicationQueriesSchemes键中添加instagram://来将该方案列入白名单。

Source

info.plist

相关问题