swift - 检测 iMessage 扩展中的用户交互

标签 swift user-interaction imessage-extension msmessage

我知道使用 iMessage 扩展程序时,除非该应用根据 Apple 防止自动消息的策略检测到用户交互,否则无法发送消息。

但是,我有一个屏幕截图检测器,当用户截图时它会自动发送一条消息。

当扩展程序已经打开,并且选择一条消息并截取它时,一切正常,因为之前在打开应用程序时有交互。

但是,如果您在没有打开扩展程序的情况下直接点击消息并对其进行截图,iMessage 将不会发送消息。

我想知道以下两件事之一:

  1. 如何绕过并发送消息(不太可能奏效)
  2. 如何在显示消息之前检查是否有交互

如果您有任何想法,请告诉我。

activeConversation?.send(message) { error in
   print(error)
}

这是我很确定的错误。但是,我确实检查过并且活跃的对话不是零

Optional(Error Domain=com.apple.messages.messagesapp-error Code=9 "(null)")

最佳答案

您是否在调试器中进行测试,并且您是否确认它在没有调试的情况下仍然失败?

正如我刚刚在 this question 中回答的那样有一个 XCode 错误,当您使用 info.plist key 授予相机权限时会导致崩溃。

这是一个奇怪的副作用,我花了将近两天的时间才弄清楚发生了什么(我在测试发送消息前几周添加了 info.plist 键)。

关于swift - 检测 iMessage 扩展中的用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55361319/

相关文章:

ios - 如何在 swift3 的 UICollectionView 中显示两个不同的单元格

ios - 禁用放大 UIWebView 但保留其他用户交互

ios - 无法使用 unity ios 将文件保存到 AppGroup 的共享容器

ios - 更改从我的 iMessage 扩展程序接收新消息时显示在锁屏上的推送通知消息

swift - Cocoa .scrollToEndOfDocument 在第一次尝试后停止工作

swift - 覆盖通用函数会产生错误

linux - 交互式 Shell 脚本

按下按键后android检测用户不活动

ios - iMessage 扩展 : Root Navigation Controller results in all delegate methods to not get called in my MSMessagesAppViewController

ios - 如何使用 swift 在 iOS7 中调用 CLLocation Manager 委托(delegate)方法