[英]Sharing a story to Instagram with a background image and a sticker - IOS Swift
我正在嘗試在我的 ios 應用程序上通過 URL 方案與背景圖像 aa 貼紙圖像分享一個故事,我正在使用附加的代碼,但它不起作用。 當我嘗試只分享背景圖片或貼紙時,它確實有效。 但是當我嘗試在其頂部共享背景圖像和貼紙時,它不起作用。
有任何想法嗎?
func shareToInstagram(deepLinkString : String){
let url = URL(string: "instagram-stories://share")!
if UIApplication.shared.canOpenURL(url){
let backgroundData = UIImageJPEGRepresentation(UIImage(named: "shop_placeholder")!, 1.0)!
let creditCardImage = UIImage(named: "share_instagram")!
let stickerData = UIImagePNGRepresentation(creditCardImage)!
let pasteBoardItems = [
["com.instagram.sharedSticker.backgroundImage" : backgroundData],
["com.instagram.sharedSticker.stickerImage" : stickerData],
]
if #available(iOS 10.0, *) {
UIPasteboard.general.setItems(pasteBoardItems, options: [.expirationDate: Date().addingTimeInterval(60 * 5)])
} else {
UIPasteboard.general.items = pasteBoardItems
}
UIApplication.shared.openURL(url)
}
我復制粘貼的 OP 代碼以在我自己的應用程序中使用(僅替換不同的 UIImages)並發現只有一個問題,粘貼板項目應包含在單個數組中,否則 instagram 將僅呈現第一個項目(在這種情況下為背景層)。 要解決此問題,請將粘貼板項目的聲明替換為以下代碼
let pasteBoardItems = [
["com.instagram.sharedSticker.backgroundImage" : backgroundData,
"com.instagram.sharedSticker.stickerImage" : stickerData]
]
(基本上只需刪除分隔兩個項目的關閉和打開支架)
同樣如先前的答案所述,請確保 info.plist 文件中的 LSApplicationQueriesSchemes 中包含“instagram-stories”
我在我的應用程序中使用了這個確切的代碼,現在它完美無缺
一切正常,我的代碼類似,適用於 iOS 11+。 我建議你以下幾點:
UIImagePNGRepresentation
轉換 jpg,反之亦然)LSApplicationQueriesSchemes
鍵)NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.stickerImage" : stickerImage,
@"com.instagram.sharedSticker.backgroundTopColor" : backgroundTopColor,
@"com.instagram.sharedSticker.backgroundBottomColor" : backgroundBottomColor}];
2. 對於最近的讀者,從swift 4.2 和 iOS 12 UIImageJPEGRepresentation 開始被 jpegData 替換。 改變
let backgroundData = UIImageJPEGRepresentation(yourImage, 1.0)
和
let backgroundData = yourImage.jpegData(compressionQuality: 1.0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.