从我的应用程序打开 iMessage

Open iMessage from my application

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

已编辑

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

这可以按如下方式完成(在 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

使用 swift3 你可以这样做

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

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];
}

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

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

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