当用户从 whats up、Skype 等使用 iOS Swift 的第三方应用程序复制消息时,我们如何获取文本?
Posted
技术标签:
【中文标题】当用户从 whats up、Skype 等使用 iOS Swift 的第三方应用程序复制消息时,我们如何获取文本?【英文标题】:How can we get text while user copying message from whats up , Skype and so on like third party app using iOS Swift? 【发布时间】:2018-03-14 07:23:14 【问题描述】:步骤 01:我可以运行我的应用程序(应用程序名称:TextDetectAPP)
步骤 02:用户按下 Home 键
步骤03:用户打开Skype或任何第三方应用(APP NAME : TextDetectAPPMove to Background state)
Spep04:用户复制文本(我需要从 Skype 或任何第三方应用程序获取复制文本)
注意:
UIpasteboard 只有用户在 ios swift 中开发的应用才能正常工作
我们是否有权从 Skype、whats up 或 iOS swift 中的任何第三方应用程序中读取短信?
提前致谢
【问题讨论】:
你试过UIPasteBoard.general()
吗?看看能不能从其他应用中获取字符串?
@BadhanGanesh:- 是的。 UIPasteBoard.general 仅用于用户开发的应用程序。 Skype、whatsup 等第三方应用程序怎么样。我想使用 swift ios 访问第三方以复制消息。在移动到后台状态后,我们的应用程序如何在 ios swift 中了解用户当前的应用程序。即使我尝试过当前的应用程序,它也只能在 osx 中工作,而不是 ios 设备。
【参考方案1】:
如果我正确理解您的问题,您希望获取在其他应用程序(Skype、FB 等)中复制的文本。您可以使用UIPasteboard
类来执行此操作。通常文本会被复制到通用粘贴板上,您可以毫无问题地访问它(我已经尝试使用 Skype 和 Message (iOS) 应用程序,它正在工作)。当你重新打开你的应用时,你可以像这样在applicationDidBecomeActive
委托方法中从第三方应用中获取复制的文本:
func applicationDidBecomeActive(_ application: UIApplication)
if let clipboardString = UIPasteboard.general.string
print(clipboardString)
您也可以使用UIPasteboardChanged
通知来收听粘贴板中的更改,但是您无法收到来自其他应用程序的更改通知。此外,您的应用可能不会一直处于后台状态执行代码(除非您启用某些特定的后台模式,如音频、Airplay 等)。因此,当您在后台时,您无法获取复制的文本。您要么需要使用上述方法,(或)如果您的应用支持后台执行,您可以让NSTimer
触发每n 秒 以获取粘贴板内容。
【讨论】:
Badhan Ganesh:- 谢谢。做得很好。我可以在用户在 Skype 中复制文本时获取文本,当时,我们是否应该在 Skype 本身中获取文本,而不是移动到用户应用程序?实际上应用程序是在后台运行的,我们如何获取 Skype 等第三方应用程序的文本? @suriappuRengan 不,你无法做到这一点。请参阅编辑后的答案。 @suriappu Rengan 答案有用吗?如果是,请将答案标记为已接受。或者,如果您已经修复了其他解决方案,请将其作为答案发布在这里,以便其他人可以从中受益。 没有。它无法在 iOS 中修复。以上是关于当用户从 whats up、Skype 等使用 iOS Swift 的第三方应用程序复制消息时,我们如何获取文本?的主要内容,如果未能解决你的问题,请参考以下文章
PowerBI从Lync或Skype for Business数据库中分析数据和KPI展现
配置Lync 2013/Skype for Business 2015/Skype for Business 2019联盟用户模糊搜索