ios - 使用背景图片和贴纸向 Instagram 分享故事 - IOS Swift
问题描述
我正在尝试通过我的 ios 应用程序上的 URL Scheme 与背景图像 a 贴纸图像分享一个故事,我正在使用附加的代码,但它不起作用。当我尝试只分享背景图片或贴纸时,它确实有效。但是当我尝试在其顶部共享背景图像和贴纸时,它不起作用。
有任何想法吗?
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]
]
(基本上只需删除分隔两个项目的关闭和打开括号)
同样如先前的回答所述,确保“instagram-stories”包含在 info.plist 文件的 LSApplicationQueriesSchemes 中
我在我的应用程序中使用了这个确切的代码,它现在可以完美运行
推荐阅读
- c++ - 不使用兼容工具集时删除预制配置
- ios - 仅在单元测试中对协议的冗余一致性
- c# - 用 restsharp 刷新令牌
- ios - 滑入式菜单容器不滑动
- java - Android:如何在片段中按下后退按钮时隐藏底页?
- python - numpy.where 返回 int 而不是 float
- c++ - 无法在 CMAKE 中复制文件:复制文件时出错
- jquery - jQuery height() 不返回实际高度,而是返回 0、-2 或 2
- excel - 如何访问/什么是 SYSTEM 帐户下 Windows 服务的 WiX CommonAppDataFolder 参数
- angular - 订阅方法后未设置变量