gpt4 book ai didi

ios - UIActivityViewController Copy 在 iOS 11 上复制项目两次

转载 作者:可可西里 更新时间:2023-11-01 03:34:03 25 4
gpt4 key购买 nike

我正在使用 UIActivityViewControlleriOS 11 上共享一个 webview url,当使用 Copy 然后转到 Messages 应用程序然后粘贴时,它是粘贴了两次。

出于好奇,我尝试对 Safari、Chrome、Firefox 以及消息以外的其他应用程序执行相同的操作。结果很有趣:

  • 从 Safari 应对总是适用于任何应用
  • 从 Chrome 或 FireFox 复制在 Notes 应用程序中有效,但它会在任何具有 TextField 的应用程序(Messages、WhatsApp、Slack、Signal 等)中复制复制的文本

这是我的简单代码

func shareURL(title: String, url: URL) {
var activityItems = [AnyObject]()
activityItems.append(TitleActivityItemProvider(title: title))

activityItems.append(url as AnyObject)

let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
}

这里是 TitleActivityItemProvider

class TitleActivityItemProvider: UIActivityItemProvider {
static let activityTypesToIgnore = [UIActivityType.copyToPasteboard]

init(title: String) {
super.init(placeholderItem: title)
}

override var item : Any {
if let activityType = activityType {
if TitleActivityItemProvider.activityTypesToIgnore.contains(activityType) {
return NSNull()
}
}
return placeholderItem! as AnyObject
}

override func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivityType?) -> String {
return placeholderItem as! String
}
}

它是 iOS 11 上的错误还是我应该考虑在使用 UIActivityViewController 时进行特定更改

==UPDATE==

我注意到当我评论添加 TitleActivityItemProvider 它工作正常,当我添加它时,它复制了 url 但是我忽略了标题提供程序中的 UIActivityType.copyToPasteboard 并返回 NSNull()

最佳答案

所以我在将项目添加到 activityItems 时使用 url.absoluteString 修复了它

activityItems.append(url.absoluteString as AnyObject)

关于ios - UIActivityViewController Copy 在 iOS 11 上复制项目两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com