Открытие сообщений программно с предварительно заполненными полями в macOS

Я пытаюсь заставить QR-коды работать на macOS. Я обнаружил, что могу открыть приложение Сообщения, просто используя imessage в качестве URI или sms в качестве URI:

NSString *message = @"imessage://your@appleid.com";
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:message]];


NSString *message = @"sms://your@appleid.com";
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:message]];

Однако я не могу добавить какие-либо параметры, поэтому я могу предварительно заполнить текст. Как предварительно заполнить тело?

смс URI существует только с 10.14 Мохаве.

PS: Разделение писем через запятую для iMessage URI сделает групповой чат.

Метод Messages.app, который обрабатывает URL (_handleGURL..), получает этот NSAppleEventDescriptor:

(lldb) po $rdx
<NSAppleEventDescriptor: 'GURL'\'GURL'{ '----':"imessage://your@appleid.com", 'qtnp':'qtnd'($62706C6973743030D2010203045F10214C5351756172616E74696E654167656E7442756E646C654964656E7469666965725F10154C5351756172616E74696E654167656E744E616D655F1011636F6D2E6872756261736B6F2E7363616E50080D31495D000000000000010100000000000000050000000000000000000000000000005E$) }>

1 ответ

В соответствии с разделом "Запуск чата с URL-адреса инфраструктуры чата Bussiness":

В URL можно включить необязательные параметры строки запроса: "biz-intent-id", "biz-group-id", "body".

NSURL *URL = [NSURL URLWithString:@"sms:test@test.com&body=Order%20additional%20credit%20card"];
[[NSWorkspace sharedWorkspace] openURL:URL];

Однако это не работает для iMessage URI (внутренняя реализация устанавливает nil для значения сообщения)

Другие вопросы по тегам