Swift WkWebView复制字符串应用程序冻结
我有一个奇怪的问题,当用户在WkWebView中选择文本时,单击“复制我的应用程序”会冻结。没有用于复制的代码,只是用户正常使用wkWebView 未显示崩溃或错误,但日志显示:Swift WkWebView复制字符串应用程序冻结,swift,wkwebview,uipasteboard,Swift,Wkwebview,Uipasteboard,我有一个奇怪的问题,当用户在WkWebView中选择文本时,单击“复制我的应用程序”会冻结。没有用于复制的代码,只是用户正常使用wkWebView 未显示崩溃或错误,但日志显示: 返回NSString类的本地对象 PBItemCollectionService连接已断开。 暂停调试器时,我只看到以下内容: 我如何调试这个?有什么想法吗 我未能成功调试导致此问题的原因,但我们的临时解决方案是为用户提供一个长按操作,以复制与该视图中的用户相关的元数据 基于这一回答: 不确定为什么需要很长时间,但请
返回NSString类的本地对象
PBItemCollectionService连接已断开。
暂停调试器时,我只看到以下内容:
我如何调试这个?有什么想法吗 我未能成功调试导致此问题的原因,但我们的临时解决方案是为用户提供一个长按操作,以复制与该视图中的用户相关的元数据 基于这一回答:
不确定为什么需要很长时间,但请尝试在单独的线程中执行复制操作,例如,不在GUI线程中。您可以使用在另一个线程中运行方法。请给我们看一些代码好吗?加载pdf的是wkWebView。实际的复制并不是用户在pdf中缩放和标记文本时执行的代码。您在复制什么?当用户试图从pdf中复制文本时,会发生这种情况
let longPress =UILongPressGestureRecognizer(target: self, action: #selector(copyOptions))
longPress.allowableMovement = 100
longPress.minimumPressDuration = 0.3
longPress.delegate = self
longPress.delaysTouchesBegan = true
longPress.delaysTouchesEnded = true
longPress.cancelsTouchesInView = true
self.wrapper.addGestureRecognizer(longPress)
func copyOptions () {
let alertController = UIAlertController(title: "Copy", message: nil, preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { action in
}))
if let someValue = self.someObject?.someValue {
alertController.addAction(UIAlertAction(title: "Copy Some Value", style: .default, handler: { action in
UIPasteboard.general.string = someValue
}))
}
self.present(alertController, animated: true, completion: nil)
}