Flutter中使用share_plus库如何获取短信接收方的姓名与手机号?
share_plus是否支持该需求?
不支持。share_plus的核心逻辑是调用系统原生的分享弹窗完成分享动作,这类系统组件的设计原则是仅负责执行分享,不会向调用方返回用户选择的接收方(姓名、手机号)信息,也没有提供相关的回调句柄来获取这类数据。
替代方案
1. 结合联系人选择插件+原生短信发送能力
- 先使用
contacts_service插件请求联系人权限,获取设备中的联系人列表,让用户手动选择目标联系人,此时可以直接拿到该联系人的姓名和手机号。 - 再通过原生平台的短信API或专门的短信插件完成发送:
- Android端:可使用
SmsManager(通过MethodChannel调用原生代码)或sms插件,传入已获取的手机号发送短信。 - iOS端:使用
MessageUI框架(同样可通过MethodChannel或插件),传入联系人手机号完成发送。
- Android端:可使用
2. 使用支持联系人选择的短信专用插件
部分专注于短信功能的Flutter插件(如sms),可结合联系人选择逻辑,让你在发送短信前明确获取到用户选中的联系人信息,全程无需依赖系统分享弹窗,完全可控。
内容的提问来源于stack exchange,提问作者Wayne Wang
相关产品推荐
相关产品推荐

