Ios 从React Native集成本机SMS
我正在尝试从React native中集成本机SMS文本功能。本机集成的原因是,目前没有任何React本机解决方案(如React本机sms或React本机通信)支持将图像作为附件发送 我有来自React Native到iOS的呼叫,但在iOS端,我收到以下信息:Ios 从React Native集成本机SMS,ios,react-native,sms,Ios,React Native,Sms,我正在尝试从React native中集成本机SMS文本功能。本机集成的原因是,目前没有任何React本机解决方案(如React本机sms或React本机通信)支持将图像作为附件发送 我有来自React Native到iOS的呼叫,但在iOS端,我收到以下信息: Warning: Attempt to present <MFMessageComposeViewController: 0x10e86ba00> on <FooAppModule: 0x10de097e0> w
Warning: Attempt to present <MFMessageComposeViewController: 0x10e86ba00> on <FooAppModule: 0x10de097e0> whose view is not in the window hierarchy!
我遗漏了哪一块拼图?在android中,你必须添加“权限”,但在IOS中,我不知道:(如错误消息所示,尝试显示消息compose view controller的视图控制器本身未显示。请编辑您的问题以显示相关代码。我已更新了初始问题。
@objc(FooAppModule)
class FooAppModule: UIViewController,
MFMessageComposeViewControllerDelegate {
var bridge: RCTBridge!
var promiseRejectBlock: RCTPromiseRejectBlock!
// Indicate whether or not a text message can be sent from the member's iOS device
func canSendText() -> Bool {
return MFMessageComposeViewController.canSendText()
}
// Configures and returns a MFMessageComposeViewController instance
func configuredMessageComposeViewController(phoneNumber: String) {
debugPrint("Phone number to be sent a text to", phoneNumber)
let textMessageRecipients = [ phoneNumber ]
let messageComposeVC = MFMessageComposeViewController()
messageComposeVC.messageComposeDelegate = self // Make sure to set this property to self, so that the controller can be dismissed!
messageComposeVC.recipients = textMessageRecipients
messageComposeVC.body = "Sending Text Message through SMS in Swift"
self.present(messageComposeVC, animated: true, completion: nil)
}
// MFMessageComposeViewControllerDelegate callback - dismisses the view controller when the user is finished with it
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult)
{
controller.dismiss(animated: true, completion: nil)
}
@objc func shareText(_ phoneNumber: String, imageBase64: String,
resolver resolve: @escaping RCTPromiseResolveBlock,
rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
if (canSendText()) {
configuredMessageComposeViewController(phoneNumber: phoneNumber)
}
}
}