【问题标题】:Open iMessage from my application从我的应用程序中打开 iMessage
【发布时间】:2017-03-30 09:26:44
【问题描述】:

有什么方法可以从我的应用打开 iMessage 苹果应用?我不需要任何作曲家,主要想法是用我的扩展打开实际的 iMessage。

已编辑

我不想发送任何消息;我只需要打开 iMessage 应用程序

【问题讨论】:

  • “我不需要作曲家”,为什么不呢?我假设this answer should help you
  • 因为我需要 iMessage 才能访问我的 iMessage 扩展
  • 你试过MFMessageComposeViewController打开iMessage吗?

标签: ios objective-c swift imessage ios-extensions


【解决方案1】:

这可以按如下方式完成(在 Swift 2 中):

let phoneNumber = "958585858"
let text = "Some message"

guard let messageURL = NSURL(string: "sms:\(phoneNumber)&body=\(text)") 
else { return }
if UIApplication.sharedApplication().canOpenURL(messageURL) {
    UIApplication.sharedApplication().openURL(messageURL)
}

如果您只需要打开消息应用程序:

guard let messageAppURL = NSURL(string: "sms:")
else { return }
if UIApplication.sharedApplication().canOpenURL(messageAppURL) {
    UIApplication.sharedApplication().openURL(messageAppURL)
}

确保在您的Info.plist 中添加sms:LSApplicationQueriesSchemes

【讨论】:

  • 我们如何使用上述想法将群组消息发送到接收者数组?
  • 对于 Swift 3,使用来自@Rajat 的答案
  • @Hammad 我想用预定义的消息打开消息应用程序,但没有提供电话号码。这是我应该如何格式化我的代码? let message = "some invitation message" guard let messageAppURL = URL(string: "sms: &body=\(message)") else {return}
【解决方案2】:

使用 swift3 你可以这样做

if UIApplication.shared.canOpenURL(URL(string:"sms:")!) {
     UIApplication.shared.open(URL(string:"sms:")!, options: [:], completionHandler: nil)
}

【讨论】:

  • 这很好用!我做了一个编辑,只构建一次 URL。
【解决方案3】:

ViewController.h

NSString *app = @"Messages.app";

ViewController.m

// https://developer.apple.com/documentation/appkit/nsworkspace?language=objc
- (IBAction)openclick:(id)sender {
    NSLog(@"Opening iMessage");
    [[NSWorkspace sharedWorkspace] launchApplication:(NSString *)app];
}

【讨论】:

    【解决方案4】:

    以下是打开消息应用程序但不显示“发送消息”作曲家的内容。如果没有展示这样的作曲家,我无法让其他解决方案在这里工作,所以我想我会尝试用另一种方式破解它:

    if let url = URL(string: "messages://"), UIApplication.shared.canOpenURL(url) {
        UIApplication.shared.open(url)
    }
    

    完全披露:我只在 iOS 14 上对此进行了测试,我还没有尝试将其提交到 App Store 以查看 Apple 是否批准。

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      相关资源
      最近更新 更多