support subtitle for apple watch.
Signed-off-by: Bo-Yi Wu (吳柏毅) <appleboy.tw@gmail.com>
This commit is contained in:
		
							parent
							
								
									acd027bdc1
								
							
						
					
					
						commit
						40dabf75c5
					
				|  | @ -400,6 +400,7 @@ Request body must has a notifications array. The following is a parameter table | ||||||
| 
 | 
 | ||||||
| | name           | type             | description                                                                                      | required | note | | | name           | type             | description                                                                                      | required | note | | ||||||
| |----------------|------------------|--------------------------------------------------------------------------------------------------|----------|------| | |----------------|------------------|--------------------------------------------------------------------------------------------------|----------|------| | ||||||
|  | | subtitle       | string           | Apple Watch & Safari display this string as part of the notification interface.                  | -        |      | | ||||||
| | action         | string           | The label of the action button. This one is required for Safari Push Notifications.              | -        |      | | | action         | string           | The label of the action button. This one is required for Safari Push Notifications.              | -        |      | | ||||||
| | action-loc-key | string           | If a string is specified, the system displays an alert that includes the Close and View buttons. | -        |      | | | action-loc-key | string           | If a string is specified, the system displays an alert that includes the Close and View buttons. | -        |      | | ||||||
| | launch-image   | string           | The filename of an image file in the app bundle, with or without the filename extension.         | -        |      | | | launch-image   | string           | The filename of an image file in the app bundle, with or without the filename extension.         | -        |      | | ||||||
|  |  | ||||||
|  | @ -39,6 +39,7 @@ type Alert struct { | ||||||
| 	LocArgs      []string `json:"loc-args,omitempty"` | 	LocArgs      []string `json:"loc-args,omitempty"` | ||||||
| 	LocKey       string   `json:"loc-key,omitempty"` | 	LocKey       string   `json:"loc-key,omitempty"` | ||||||
| 	Title        string   `json:"title,omitempty"` | 	Title        string   `json:"title,omitempty"` | ||||||
|  | 	Subtitle     string   `json:"subtitle,omitempty"` | ||||||
| 	TitleLocArgs []string `json:"title-loc-args,omitempty"` | 	TitleLocArgs []string `json:"title-loc-args,omitempty"` | ||||||
| 	TitleLocKey  string   `json:"title-loc-key,omitempty"` | 	TitleLocKey  string   `json:"title-loc-key,omitempty"` | ||||||
| } | } | ||||||
|  | @ -238,6 +239,11 @@ func iosAlertDictionary(payload *payload.Payload, req PushNotification) *payload | ||||||
| 		payload.AlertTitle(req.Title) | 		payload.AlertTitle(req.Title) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	// Apple Watch & Safari display this string as part of the notification interface.
 | ||||||
|  | 	if len(req.Alert.Subtitle) > 0 { | ||||||
|  | 		payload.AlertSubtitle(req.Alert.Subtitle) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	if len(req.Alert.TitleLocKey) > 0 { | 	if len(req.Alert.TitleLocKey) > 0 { | ||||||
| 		payload.AlertTitleLocKey(req.Alert.TitleLocKey) | 		payload.AlertTitleLocKey(req.Alert.TitleLocKey) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -132,6 +132,7 @@ func TestIOSAlertNotificationStructure(t *testing.T) { | ||||||
| 			LaunchImage:  test, | 			LaunchImage:  test, | ||||||
| 			LocArgs:      []string{"a", "b"}, | 			LocArgs:      []string{"a", "b"}, | ||||||
| 			LocKey:       test, | 			LocKey:       test, | ||||||
|  | 			Subtitle:     test, | ||||||
| 			TitleLocArgs: []string{"a", "b"}, | 			TitleLocArgs: []string{"a", "b"}, | ||||||
| 			TitleLocKey:  test, | 			TitleLocKey:  test, | ||||||
| 		}, | 		}, | ||||||
|  | @ -153,6 +154,7 @@ func TestIOSAlertNotificationStructure(t *testing.T) { | ||||||
| 	launchImage, _ := jsonparser.GetString(data, "aps", "alert", "launch-image") | 	launchImage, _ := jsonparser.GetString(data, "aps", "alert", "launch-image") | ||||||
| 	locKey, _ := jsonparser.GetString(data, "aps", "alert", "loc-key") | 	locKey, _ := jsonparser.GetString(data, "aps", "alert", "loc-key") | ||||||
| 	title, _ := jsonparser.GetString(data, "aps", "alert", "title") | 	title, _ := jsonparser.GetString(data, "aps", "alert", "title") | ||||||
|  | 	subtitle, _ := jsonparser.GetString(data, "aps", "alert", "subtitle") | ||||||
| 	titleLocKey, _ := jsonparser.GetString(data, "aps", "alert", "title-loc-key") | 	titleLocKey, _ := jsonparser.GetString(data, "aps", "alert", "title-loc-key") | ||||||
| 	aps := dat["aps"].(map[string]interface{}) | 	aps := dat["aps"].(map[string]interface{}) | ||||||
| 	alert := aps["alert"].(map[string]interface{}) | 	alert := aps["alert"].(map[string]interface{}) | ||||||
|  | @ -165,6 +167,7 @@ func TestIOSAlertNotificationStructure(t *testing.T) { | ||||||
| 	assert.Equal(t, test, launchImage) | 	assert.Equal(t, test, launchImage) | ||||||
| 	assert.Equal(t, test, locKey) | 	assert.Equal(t, test, locKey) | ||||||
| 	assert.Equal(t, test, title) | 	assert.Equal(t, test, title) | ||||||
|  | 	assert.Equal(t, test, subtitle) | ||||||
| 	assert.Equal(t, test, titleLocKey) | 	assert.Equal(t, test, titleLocKey) | ||||||
| 	assert.Contains(t, titleLocArgs, "a") | 	assert.Contains(t, titleLocArgs, "a") | ||||||
| 	assert.Contains(t, titleLocArgs, "b") | 	assert.Contains(t, titleLocArgs, "b") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue