Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

388
Vistas
Publicar en la pantalla de Instagram en iOS Swift

Estoy tratando de hacer que compartir desde mi aplicación a Instagram sea fácil. Y lo que quiero es llegar a la pantalla que se muestra en la captura de pantalla a continuación. Probé instagram-stories://share deeplink y leí todos estos documentos: https://developers.facebook.com/docs/instagram/sharing-to-stories/

Sin embargo, haga lo que haga, cuando se activa la acción del esquema de URL, pasa directamente a compartir la imagen en la historia. ¿Que me estoy perdiendo aqui?

ingrese la descripción de la imagen aquí

Aquí está mi extracto de código:

 if let image = image { guard let urlScheme = URL(string: "instagram-stories://share"), let imageData = image.pngData() else { return } if UIApplication.shared.canOpenURL(urlScheme) { let pasterboardItems = [["com.instagram.sharedSticker.backgroundImage": imageData]] let pasterboardOptions = [UIPasteboard.OptionsKey.expirationDate: Date().addingTimeInterval(60*5)] UIPasteboard.general.setItems(pasterboardItems, options: pasterboardOptions) UIApplication.shared.open(urlScheme, options: [:], completionHandler: nil) } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Lo que debe hacer es abrir la aplicación de Instagram utilizando la siguiente URL:
instagram://library?LocalIdentifier= y páselo como parámetro PHAsset.localIdentifier .
Por alguna razón, este gancho no aparece en ninguna parte de la documentación 🤷‍♂️

Pero para recibir un identificador local para su imagen/video, primero debe guardar la imagen/video en la biblioteca de fotos del usuario. Así que el código final se vería así

 let videoFileUrl: URL = URL(fileURLWithPath: "path/to/my/video")! var localId: String? PHPhotoLibrary.shared().performChanges({ let request = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: videoFileUrl) localId = request?.placeholderForCreatedAsset?.localIdentifier }, completionHandler: { success, error in // completion handler is called on an arbitrary thread // but since you (most likely) will perform some UI stuff // you better move everything to the main thread. DispatchQueue.main.async { guard error == nil else { // handle error return } guard let localId = localId else { // highly unlikely that it'll be nil, // but you should handle this error just in case return } let url = URL(string: "instagram://library?LocalIdentifier=\(localId)")! guard UIApplication.shared.canOpenURL(url) else { // handle this error return } UIApplication.shared.open(url, options: [:], completionHandler: nil) } })
over 4 years ago · Santiago Trujillo Denunciar

0

  1. suponga que su image es "png"
  2. suponga que permitió "historias de instagram" en su info.plist (clave LSApplicationQueriesSchemes )
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda