如何从iMessage扩展中获取短信输入框内的未发送消息内容?
iMessage扩展读取输入框未发送文本的相关说明
苹果官方公开的Messages Extension API暂不支持直接读取原生输入框内的未提交草稿内容。
你之前查阅的activeConversation对象确实没有对应输入内容的相关属性,该对象仅开放已收发消息历史、会话参与者标识、会话ID等公开维度的信息,未提交的输入内容属于用户未公开的隐私数据,官方未将该字段纳入第三方扩展的可访问范围。
目前可实现需求的路径分为两种:
- 合规可上架方案:如果你的扩展不需要依赖系统原生输入框,可以在扩展自定义界面中新增专属输入组件,该组件内的输入内容可以直接读取,无需调用系统私有能力。
- 自用测试方案(不可上架App Store):通过Runtime调用私有API获取原生输入框内容,核心逻辑为获取当前
CKTranscriptViewController实例的_messageEntryView属性,读取该视图的text字段即可拿到未发送的输入内容。注意不同iOS版本的私有类、属性命名可能存在差异,需要针对适配的系统版本单独调试,使用私有API的应用无法通过App Store审核。
内容的提问来源于stack exchange,提问作者MagentaSanta
相关产品推荐
相关产品推荐

