我看到了一个名为CopyTranslate的iPhone应用程序。当我们复制一些东西,如在Safari中时,它可以通过本地通知给出所复制内容的翻译。
所以我想知道该应用程序是否可以在后台接收UIPasteboardChangedNotification。然后,我进行了一个测试,我建立了一个可以在后台运行10分钟且观察UIPasteboardChangedNotification的应用程序。结果是应用程序无法在后台接收通知。
有没有人有想法来实现CopyTranslate这样的功能呢?它是否每秒钟检查一次UIPasetBoard?如果是这样,它如何知道有新的字符串复制而不是图像复制或其他什么东西。
感谢任何想法!
我通过在后台每秒钟检查一次UIPasteboard的changeCount来解决了这个问题。
以下是详细信息:
我在AppDelegate中持有一个名为lastChangeCount的属性,当我的应用程序进入后台时,我启动一个无限循环,每次迭代都会睡眠1秒钟。我将比较UIPasteboard的changeCount和lastChangeCount每次迭代,如果它们不相等,则我知道剪贴板中有一些新的粘贴项目。因此,如果存在UIPasteboard的字符串属性,则我会安排一个本地通知来显示它。如果不存在,则表示用户可能复制了图像或其他什么东西,因此我什么都不做。
所以我想知道该应用程序是否可以在后台接收UIPasteboardChangedNotification。然后,我进行了一个测试,我建立了一个可以在后台运行10分钟且观察UIPasteboardChangedNotification的应用程序。结果是应用程序无法在后台接收通知。
有没有人有想法来实现CopyTranslate这样的功能呢?它是否每秒钟检查一次UIPasetBoard?如果是这样,它如何知道有新的字符串复制而不是图像复制或其他什么东西。
感谢任何想法!
我通过在后台每秒钟检查一次UIPasteboard的changeCount来解决了这个问题。
以下是详细信息:
我在AppDelegate中持有一个名为lastChangeCount的属性,当我的应用程序进入后台时,我启动一个无限循环,每次迭代都会睡眠1秒钟。我将比较UIPasteboard的changeCount和lastChangeCount每次迭代,如果它们不相等,则我知道剪贴板中有一些新的粘贴项目。因此,如果存在UIPasteboard的字符串属性,则我会安排一个本地通知来显示它。如果不存在,则表示用户可能复制了图像或其他什么东西,因此我什么都不做。