当用户从 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展现

我们如何集成 Skype API?

Ubuntu下安装skype的脚本

配置Lync 2013/Skype for Business 2015/Skype for Business 2019联盟用户模糊搜索

iPhone/Android 应用程序让用户共享登录/注销状态,例如 Skype

如何将Lync/Skype服务器KHI数据导入到SQL Server数据库