当前位置: 首页 > 面试题库 >

使用Swift在iOS中发送短信

束飞捷
2023-03-14
问题内容

首先,我真的很惊讶这不是重复的,因为在Objective-C中有大量的堆栈溢出问题可以解决这个问题,但是我还没有看到使用Swift的好答案。

我正在寻找的是Swift中的代码段,该代码段将任意字符串作为文本消息的正文发送到给定的电话号码。从本质上讲,我希望像这样从苹果的官方文档,但是在斯威夫特,而不是Objective-
C的。

我认为这并不是太困难,因为可以在Android中只需几行代码即可完成。

编辑:我正在寻找的是5-20行Swift代码,我不同意这个范围太广。在Java(适用于Android)中,解决方案如下所示:

package com.company.appname;
import android.app.Activity;
import android.telephony.SmsManager;
public class MainActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        public static final mPhoneNumber = "1111111111";
        public static final mMessage = "hello phone";
        SmsManager.getDefault().sendTextMessage(mPhoneNumber, null, mMessage, null, null);
     }
}

现在这是android解决方案,只有11行。Java往往比Swift更冗长,因此我怀疑我的要求是“太宽泛了”,很可能是我不知道如何使用Objective-C
MessageComposer对象,因为我链接的文档关于Swift中的用法,上述内容尚不清楚。


问题答案:

不知道您是否真的得到了答案。我也遇到了类似的情况,遇到了这个解决方案并使它起作用。

import UIKit
import MessageUI

class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {

    @IBOutlet weak var phoneNumber: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func sendText(sender: UIButton) {
        if (MFMessageComposeViewController.canSendText()) {
            let controller = MFMessageComposeViewController()
            controller.body = "Message Body"
            controller.recipients = [phoneNumber.text]
            controller.messageComposeDelegate = self
            self.presentViewController(controller, animated: true, completion: nil)
        }
    }

    func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {
        //... handle sms screen actions
        self.dismissViewControllerAnimated(true, completion: nil)
    }

    override func viewWillDisappear(animated: Bool) {
        self.navigationController?.navigationBarHidden = false
    }
}


 类似资料:
  • 问题内容: 我是第一次使用Alamofire。我正在使用最新版本的Alamofire 1.3.1。我想在一个API调用中发送一幅图像,一幅视频和一些POST参数。我正在使用多部分表单数据。mutipart模块正在工作。我在发送额外的POST参数时遇到问题。下面是我的代码。“ params”是包含额外参数的字典吗?如何在请求中附加这些POST参数。请帮忙 问题答案: 我找到了解决方案:)终于。 我们

  • 我是第一次用阿拉莫火。我使用的是最新版本的Alamofire 1.3.1。我想在一个API调用中发送一个图像,一个视频和一些POST参数。我正在使用多部分表单数据。多部分模块正在工作。我面临的问题是发送额外的POST参数。下面是我的代码。“params”是包含额外参数的字典?如何在请求中追加这些POST参数。请帮忙

  • 问题内容: 在我的xcode项目中添加OpenCV 2框架后,我尝试搜索samlpes或与swift集成的教程。 有没有很好的教程呢? 问题答案: OpenCV是用C ++编写的框架。苹果的参考资料告诉我们 您不能将C 代码直接导入Swift。而是为C 代码创建一个Objective-C或C包装器。 因此,您不能直接在一个快速的项目中导入和使用OpenCV,但这实际上一点都不好,因为您(需要)继续

  • 如何在Android中使用Twillio Api发送短信。这是我的代码。我不知道的是如何设置http请求正文。当我使用CocoaRestClient(用于api测试的工具)测试它时,它运行良好。请帮帮我。 }