我有一个发送短信的iPhone应用程序。现在,我已经开始制作此应用程序的Apple Watch版本。

当我尝试导入<MessageUI/MessageUI.h>时,提示未找到。我一直在阅读,发现MessageUI不是watchOS可用的框架,但是我发现可以使用WatchConnectivity使用不受支持的框架。我的问题是发现的所有示例都很快,我正在使用Objective-C,我的问题是如何使用WatchConnectivity使用MessageUI和/或是否有另一种方式通过watchOS发送短信?

最佳答案

不,您不能直接通过watchOS发送短信,我们没有MessageUI框架支持。但是,使用WatchConnectivity将消息文本从Watch发送到iPhone,然后在电话上进行其余操作。但是,当应用程序位于background中并且从watch接收消息时,存在局限性。

在手表上

if([WCSession isSupported]) {
    WCSession *session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];
    [session sendMessage:[NSDictionary dictionaryWithObject:@"message text here" forKey:@"text"]
            replyHandler:^(NSDictionary *reply) {
                             //handle reply from iPhone app here
                         }
            errorHandler:^(NSError *error) {
                             //catch any errors here
                         }];
}


在iPhone上

- (void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary<NSString *,id> *)message replyHandler:(nonnull void (^)(NSDictionary<NSString *,id> * __nonnull))replyHandler {
    //--Message UI code here
}


Available System Technologies for WatchOS2

10-08 12:12