从我的应用程序中打开iMessage

时间:2016-11-16 08:59:43

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

有没有办法从我的应用程序打开iMessage苹果应用程序?我不需要任何作曲家,主要的想法是用扩展名打开实际的iMessage。

EDITED

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

4 个答案:

答案 0 :(得分:13)

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

如果您只需要打开消息app:

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

请务必在sms:

中将LSApplicationQueriesSchemes添加到Info.plist

答案 1 :(得分:5)

使用swift3,你可以这样做

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

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