从 FinderSync 扩展调用 NSSharingService

Call NSSharingService from FinderSync extension

我正在尝试从我的 FinderSync 扩展程序发送电子邮件(打开默认邮件客户端应用程序)。

        let service = NSSharingService(named: NSSharingService.Name.composeEmail)
        if(service != nil)
        {
            service!.recipients = ["test@gmail.com"]
            service!.subject = "Test Mail"
           if service!.canPerform(withItems: ["Test Mail body"])
           {
                service!.perform(withItems: ["Test Mail body"])
           }
           else
           {
                  //fail for me
          }
        }

在启动主应用程序时从 AppDelegate/ViewController 执行相同的代码,但在从扩展程序调用时不工作。

FinderSync 是一个 NSExtension,不允许使用 NSSharingService

/* @class SHKSharingService (ShareKit.framework) */  

-(char)canPerformWithItems:(NSArray *)items {
    if (([[SHKSharingService class] isShareKitPlugInService] || ([items count] > 0x1388)) {
    return NO;
}

isShareKitPlugInService 定义为

[[NSBundle mainBundle] infoDictionary][@"NSExtension"]