【问题标题】:UIActivityViewController Copy copies item twice on iOS 11UIActivityViewController 在 iOS 11 上复制项目两次
【发布时间】:2017-10-02 13:37:56
【问题描述】:

我使用UIActivityViewControlleriOS 11 上分享一个webview url,当使用Copy 然后转到消息应用然后粘贴,它被粘贴了两次。

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

  • 从 Safari 应对始终适用于任何应用程序
  • 从 Chrome 或 FireFox 复制在 Notes 应用程序中有效,但它会在任何具有 TextField 的应用程序(消息、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()

【问题讨论】:

    标签: ios swift3 ios11 uiactivityviewcontroller


    【解决方案1】:

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

    activityItems.append(url.absoluteString as AnyObject)
    

    【讨论】:

      【解决方案2】:

      您是否在模拟器上进行测试?在模拟器上我遇到了这个问题,但在设备上它只粘贴一次。

      【讨论】:

      • 我在模拟器和设备中都有它
      猜你喜欢
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 2014-10-27
      相关资源
      最近更新 更多