Как я могу получить MessageAttributes сообщения sns в приложении ios? - PullRequest
0 голосов
/ 04 октября 2019

Я подключил конечную точку SNS к приложению ios. Когда я публикую в конечной точке sns:

                anSNS.publish(
                    TargetArn=userLUT['mobrien'],
                    Message=aMessage,
                    MessageAttributes={
                        'one': {'DataType': 'String', 'StringValue': aOne},
                        'two': {'DataType': 'Number', 'StringValue': aTwo}
                    })

, я получаю сообщение в launchOptions от этого конструктора:

func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool

в виде строки .alert.

Iне получают атрибуты MessageAttributes в словаре launchOptions. Как мне получить атрибуты сообщения?

1 Ответ

0 голосов
/ 07 октября 2019

понял это. Вам необходимо переключить тип сообщения на «json», а затем передать структуру json в атрибут «Message» для структуры «APNS» (или «APNS_SANDBOX»).

anAPNS = '{{ "aps": {{ "alert": "{}", "one": "{}", "two": "{}" }} }}'.format(aMessage, 'one', 'two')
anSNS.publish(
                    TargetArn=arnGoesHere,
                    MessageStructure='json',
                    Message=json.dumps({
                        'default': aMessage,
                        'APNS_SANDBOX': anAPNS,
                        'APNS': anAPNS
                    }))

Атрибуты MessageAttributes не передаютсяк окончательному сообщению apns.

...