| OLD | NEW |
| 1 <h1 id="richNotifications">Rich Notifications</h1> | 1 <h1 id="richNotifications">Rich Notifications</h1> |
| 2 | 2 |
| 3 <p class="note"> |
| 4 <strong>Platform difference:</strong> In Chrome version 59, notifications |
| 5 appear differently for Mac OS X users. Instead of Chrome's own |
| 6 notifications, users see native Mac OS X notifications. |
| 7 <a href="https://developers.google.com/web/updates/2017/04/native-mac-os-notific
ations">Learn more in this article</a>. |
| 8 </p> |
| 9 |
| 3 <p>The <a href="https://developer.chrome.com/apps/notifications">rich notificati
ons API</a> | 10 <p>The <a href="https://developer.chrome.com/apps/notifications">rich notificati
ons API</a> |
| 4 lets you create notifications using templates and | 11 lets you create notifications using templates and |
| 5 show these notifications to users in the user's system tray: | 12 show these notifications to users in the user's system tray: |
| 6 </p> | 13 </p> |
| 7 | 14 |
| 8 <p><img src="{{static}}/images/notifications.png" | 15 <p><img src="{{static}}/images/notifications.png" |
| 9 alt="Notifications in system user tray"> | 16 alt="Notifications in system user tray"> |
| 10 </p> | 17 </p> |
| 11 | 18 |
| 12 <h2 id="look">How they look</h2> | 19 <h2 id="look">How they look</h2> |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 | 70 |
| 64 <p> | 71 <p> |
| 65 Notifications can be assigned a priority between -2 to 2. | 72 Notifications can be assigned a priority between -2 to 2. |
| 66 Priorities < 0 are shown in the ChromeOS notification center, and produce an | 73 Priorities < 0 are shown in the ChromeOS notification center, and produce an |
| 67 error on other platforms. | 74 error on other platforms. |
| 68 Priority 0 is the default priority. | 75 Priority 0 is the default priority. |
| 69 Priorities > 0 are shown for increasing duration and | 76 Priorities > 0 are shown for increasing duration and |
| 70 more high priority notifications can be displayed in the system tray. | 77 more high priority notifications can be displayed in the system tray. |
| 71 </p> | 78 </p> |
| 72 | 79 |
| 80 <p class="note"> |
| 81 <strong>Platform difference:</strong> The <code>priority</code> does not |
| 82 affect the order of notifications in Chrome version 59+ on Mac OS X. |
| 83 </p> |
| 84 |
| 73 <p> | 85 <p> |
| 74 In addition to displaying information, | 86 In addition to displaying information, |
| 75 all notification types can include up to two action items. | 87 all notification types can include up to two action items. |
| 76 When users click on an action item, | 88 When users click on an action item, |
| 77 your app can respond with the appropriate action. | 89 your app can respond with the appropriate action. |
| 78 For example, | 90 For example, |
| 79 when the user clicks on "Reply", | 91 when the user clicks on "Reply", |
| 80 the email app opens and the user can complete the reply: | 92 the email app opens and the user can complete the reply: |
| 81 </p> | 93 </p> |
| 82 | 94 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 </pre> | 148 </pre> |
| 137 | 149 |
| 138 <h3 id="image">Create image notification</h3> | 150 <h3 id="image">Create image notification</h3> |
| 139 | 151 |
| 140 <p> | 152 <p> |
| 141 The <code>image</code> | 153 The <code>image</code> |
| 142 template type also includes an <code>imageUrl</code>, which is a link to | 154 template type also includes an <code>imageUrl</code>, which is a link to |
| 143 an image that is previewed within the notification: | 155 an image that is previewed within the notification: |
| 144 </p> | 156 </p> |
| 145 | 157 |
| 158 <p class="note"> |
| 159 <strong>Platform difference:</strong> Images will not be display to users using |
| 160 Chrome version 59+ on Mac OS X. |
| 161 </p> |
| 162 |
| 146 <pre> | 163 <pre> |
| 147 var opt = { | 164 var opt = { |
| 148 type: "basic", | 165 type: "basic", |
| 149 title: "Primary Title", | 166 title: "Primary Title", |
| 150 message: "Primary message to display", | 167 message: "Primary message to display", |
| 151 iconUrl: "url_to_small_icon", | 168 iconUrl: "url_to_small_icon", |
| 152 imageUrl: "url_to_preview_image" | 169 imageUrl: "url_to_preview_image" |
| 153 } | 170 } |
| 154 </pre> | 171 </pre> |
| 155 | 172 |
| 156 <p> | 173 <p> |
| 157 In Chrome Apps, due to a strict <a href="contentSecurityPolicy">Content Security
Policy</a> | 174 In Chrome Apps, due to a strict <a href="contentSecurityPolicy">Content Security
Policy</a> |
| 158 these URLs must point to a local resource or use a | 175 these URLs must point to a local resource or use a |
| 159 <a href="app_external">blob or data URL</a>. | 176 <a href="app_external">blob or data URL</a>. |
| 160 Use a 3:2 ratio for your image; otherwise a black border frames the image. | 177 Use a 3:2 ratio for your image; otherwise a black border frames the image. |
| 161 </p> | 178 </p> |
| 162 | 179 |
| 163 <h3 id="list">Create list notification</h3> | 180 <h3 id="list">Create list notification</h3> |
| 164 | 181 |
| 165 <p> | 182 <p> |
| 166 The <code>list</code> template displays <code>items</code> | 183 The <code>list</code> template displays <code>items</code> |
| 167 in a list format: | 184 in a list format: |
| 168 </p> | 185 </p> |
| 169 | 186 |
| 187 <p class="note"> |
| 188 <strong>Platform difference:</strong> Only the first list item is |
| 189 displayed to users in Chrome version 59+ on Mac OS X. |
| 190 </p> |
| 191 |
| 170 <pre> | 192 <pre> |
| 171 var opt = { | 193 var opt = { |
| 172 type: "list", | 194 type: "list", |
| 173 title: "Primary Title", | 195 title: "Primary Title", |
| 174 message: "Primary message to display", | 196 message: "Primary message to display", |
| 175 iconUrl: "url_to_small_icon", | 197 iconUrl: "url_to_small_icon", |
| 176 items: [{ title: "Item1", message: "This is item 1."}, | 198 items: [{ title: "Item1", message: "This is item 1."}, |
| 177 { title: "Item2", message: "This is item 2."}, | 199 { title: "Item2", message: "This is item 2."}, |
| 178 { title: "Item3", message: "This is item 3."}] | 200 { title: "Item3", message: "This is item 3."}] |
| 179 } | 201 } |
| 180 </pre> | 202 </pre> |
| 181 | 203 |
| 182 <h3 id="list">Create progress notification</h3> | 204 <h3 id="list">Create progress notification</h3> |
| 183 | 205 |
| 184 <p> | 206 <p> |
| 185 The <code>progress</code> template displays a progress bar where current | 207 The <code>progress</code> template displays a progress bar where current |
| 186 progress ranges from 0 to 100: | 208 progress ranges from 0 to 100: |
| 187 </p> | 209 </p> |
| 188 | 210 |
| 211 <p class="note"> |
| 212 <strong>Platform difference:</strong> In Chrome version 59+ on Mac OS X, the |
| 213 progress bar displays as a percentage value in the title of the notification |
| 214 instead of displaying a progress bar. |
| 215 </p> |
| 216 |
| 189 <pre> | 217 <pre> |
| 190 var opt = { | 218 var opt = { |
| 191 type: "progress", | 219 type: "progress", |
| 192 title: "Primary Title", | 220 title: "Primary Title", |
| 193 message: "Primary message to display", | 221 message: "Primary message to display", |
| 194 iconUrl: "url_to_small_icon", | 222 iconUrl: "url_to_small_icon", |
| 195 progress: 42 | 223 progress: 42 |
| 196 } | 224 } |
| 197 </pre> | 225 </pre> |
| 198 | 226 |
| 199 | |
| 200 <h2 id="events">Listening for and responding to events</h2> | 227 <h2 id="events">Listening for and responding to events</h2> |
| 201 | 228 |
| 202 <p> | 229 <p> |
| 203 All notifications can include event listeners and event handlers | 230 All notifications can include event listeners and event handlers |
| 204 that respond to user actions (see <a href="events">chrome.events</a>). | 231 that respond to user actions (see <a href="events">chrome.events</a>). |
| 205 For example, | 232 For example, |
| 206 you can write an event handler to respond to an | 233 you can write an event handler to respond to an |
| 207 $(ref:notifications.onButtonClicked) event. | 234 $(ref:notifications.onButtonClicked) event. |
| 208 </p> | 235 </p> |
| 209 | 236 |
| 210 <p>Event listener:</p> | 237 <p>Event listener:</p> |
| 211 | 238 |
| 212 <pre> | 239 <pre> |
| 213 chrome.notifications.onButtonClicked.addListener(replyBtnClick); | 240 chrome.notifications.onButtonClicked.addListener(replyBtnClick); |
| 214 </pre> | 241 </pre> |
| 215 | 242 |
| 216 <p>Event handler:</p> | 243 <p>Event handler:</p> |
| 217 | 244 |
| 218 <pre> | 245 <pre> |
| 219 function replyBtnClick { | 246 function replyBtnClick { |
| 220 //Write function to respond to user action. | 247 //Write function to respond to user action. |
| 221 } | 248 } |
| 222 </pre> | 249 </pre> |
| 223 | 250 |
| 224 <p>Consider including event listeners and handlers within the | 251 <p>Consider including event listeners and handlers within the |
| 225 <a href="app_lifecycle#create_event_page">event page</a>, | 252 <a href="app_lifecycle#create_event_page">event page</a>, |
| 226 so that notifications can pop-up even when the app or extension isn't running. | 253 so that notifications can pop-up even when the app or extension isn't running. |
| 227 </p> | 254 </p> |
| 228 | |
| OLD | NEW |