MFMessageComposeViewController - 禁止添加/编辑收件人?

问题描述

我知道这是一个老问题,我在文档中读到我们无法自定义 MFMessageController/MFMailController 的 UI,这样做会增加 AppStore 标记应用程序的机会,如果他们发现我使用私有 APIS。所以现在我所做的只是为了探索私有api的

但我仍然遵循了一些文档,并尝试使用一些私有 API 来执行以下代码

@IBAction func sendSmsClick(_ sender: AnyObject) {
    guard MFMessageComposeViewController.canSendText() else {
        return
    }
    
    let messageController = MFMessageComposeViewController()
    messageController body = "fhfhfkjhfdgggefgregfhrfhfrhggejhvghjkgevhjg"
    messageController.recipients = ["64688098"]
    messageController.messageComposeDelegate = self;
    
    
    // Disabling the recepient editing - not working
    // Here the _setCanEditRecipients: is a private API
    let disableRecepients = "_setCanEditRecipients:"
    print(disableRecepients)
    let selOne = NSSelectorFromString(disableRecepients)
    if messageController.responds(to: selOne) {
        print("Yes")
       messageController.perform(selOne,with: false)
    }
    
    self.present(messageController,animated: true) {
       
    }
    
    
    
}

我从这里的 MFMessageComposeViewController 的 iVar 和方法列表中获得的私有 API。

https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/MessageUI.framework/MFMessageComposeViewController.h

但即使传递给私有 API 中的实例方法 _setCanEditRecipients 之一,我仍然可以编辑收件人列表。如何禁用 MFMessageComposer 控制器中的添加按钮和收件人编辑?任何想法将不胜感激

This image

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)