【问题标题】:How to launch SMS Message app如何启动短信应用程序
【发布时间】:2015-09-19 17:48:52
【问题描述】:

我想打开短信应用程序来复制朋友的一些短信。我没有创建短信。

如何使用 Swift 代码启动 iphone SMS 消息应用程序? 我在下面遇到此代码以启动 Mail 应用程序但无法正常工作。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:"]];

我改了,还是不行

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];

感谢您的帮助。 TIA

【问题讨论】:

  • 如果您在模拟器上工作,它将无法工作。在真机上试用。

标签: ios swift


【解决方案1】:
// Swift 3
UIApplication.sharedApplication().openURL(NSURL(string: "sms:")!)

// Swift 4
UIApplication.shared.open(URL(string: "sms:")!, options: [:], completionHandler: nil)

【讨论】:

  • 我想知道为什么它不起作用?我在 IBAction 中复制了您的代码,以便单击以启动 SMS 应用程序。
  • 你用的是真机吗?你能发布一些代码吗?因为它对我有用。
  • 你是对的。我正在模拟器上测试它。您的代码是否可以在真实设备中运行,它将打开 SMS 消息应用程序,该应用程序将显示所有传入的 SMS(es)。我可以点击它并复制说,GPS latlon 由朋友发送。格式是“sms:”(没有空格)而不是“sms:”(后面有一个空格:?)
  • 1.不会,需要取消才能返回视图。2.格式为“短信:”(无空格)
  • 这就是我想要的:在mainVC里面有一个btn,点击它启动SMS App(就像在HomeScreen中打开SMS App一样),当复制完选定SMS中的一些文本后,关闭它返回到 MainVC。你上面的代码允许我这样做吗?我很快就会拥有我的真实设备。很抱歉再次问这个问题。
【解决方案2】:

斯威夫特 5:

let sms: String = "sms:+1234567890&body=Hello Abc How are You I am ios developer."
let strURL: String = sms.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
UIApplication.shared.open(URL.init(string: strURL)!, options: [:], completionHandler: nil)

【讨论】:

    【解决方案3】:

    我不确定您为什么要明确使用 SMS 应用程序,也不确定是否可行。另一方面,iOS 默认提供MFMessageComposeViewController 用于从 iOS 应用发送短信。

    查看这个 Swift example 了解更多详情。

    编辑: 我发现这个wiki page 可能包含您问题的答案。请注意,我尚未对其进行测试。

    let number = "sms:+12345678901"
    UIApplication.sharedApplication().openURL(NSURL(string: number)!)
    

    【讨论】:

    • 我只是想打开短信应用复制一些朋友的短信。即 GPS 纬度。你能快速转换你的代码吗?
    • 您的代码是打开一个特定的手机号码。但我只想打开短信应用程序,它将显示所有传入的短信。有什么想法吗?
    • 您可以尝试发送空号码,即“短信:”,但它不会打开应用收到的短信。我不确定这最终是否可能。
    【解决方案4】:

    问题是关于如何启动短信应用程序。但如果有人想在不离开当前应用的情况下打开 SMS 编写器,这里有一种方法可以实现。

    假设当用户点击发送短信按钮时触发以下功能

    private func sendSMSButtonAction() {
        guard MFMessageComposeViewController.canSendText() else {
            print("Unable to send messages.")
            return
        }
    
        let controller = MFMessageComposeViewController()
        // controller.messageComposeDelegate = self // Confirm this if you want to check the result when the user dismisses the controller.
        controller.recipients = ["+12345678901"]
        controller.body = "Some text"
        present(controller, animated: true)
    }
    

    请确保您已在控制器中导入 MessageUI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-23
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多