Вызов NSSharingService из расширения FinderSync
Я пытаюсь отправить электронное письмо (открыть приложение почтового клиента по умолчанию) из своего расширения 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 при запуске основного приложения, но не работает при вызове из расширения.
1 ответ
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"]