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

Я пытаюсь заставить 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]];

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

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

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

Сообщения.Метод приложения, который обрабатывает URL (_handleGURL ..), получает этот NSAppleEventDescriptor:

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

enter image description here

1 Ответ

0 голосов
/ 28 января 2019

Согласно Запуск чата с URL-адреса Business Chat Framework:

Есть дополнительные параметры строки запроса, которые можно включить в 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 для значения сообщения)

Messages app

...