我正在尝试通过我的ios应用程序上的URL方案分享一个带有背景图像和贴纸图像的故事,我正在使用附加的代码,但它不起作用。当我试图分享一张背景图片或一张贴纸时,它确实起作用了。但是当我尝试分享背景图片和上面的贴纸时,它并不起作用。
有什么想法吗?
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)
}
发布于 2019-06-11 03:24:38
我复制了粘贴的OP代码在我自己的应用程序中使用(只替换了不同的UIImages),发现只有一个问题,粘贴板项目应该包含在一个单独的数组中,否则instagram将只渲染第一个项目(在这种情况下是背景层)。要解决此问题,请将粘贴板项目的声明替换为以下代码
let pasteBoardItems = [
["com.instagram.sharedSticker.backgroundImage" : backgroundData,
"com.instagram.sharedSticker.stickerImage" : stickerData]
]
(基本上只要去掉分隔两个项目的闭合括号即可)
同样,正如前面的回答所述,请确保在info.plist文件的LSApplicationQueriesSchemes中包含"instagram-stories“
我在我的应用程序中使用了完全相同的代码,现在它工作得很完美
https://stackoverflow.com/questions/54530106
复制相似问题