我已经将SNS终端节点连接到iOS应用程序。当我发布到 sns 端点时:
anSNS.publish(
TargetArn=userLUT['mobrien'],
Message=aMessage,
MessageAttributes={
'one': {'DataType': 'String', 'StringValue': aOne},
'two': {'DataType': 'Number', 'StringValue': aTwo}
})
我在启动选项中收到来自此构造器的消息:
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
作为 .alert 字符串。
我没有收到启动选项字典中的消息属性。如何获取消息属性?
想通了。您需要将消息类型切换为"json",然后将 json 结构传递到"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
}))
消息属性不会传递给最终的 apns 消息。