Files
react-native-notifications/docs/localNotifications.html
yogevbd 06cab506f0 Deploy website
Deploy website version based on 0b7175f855
2020-01-15 18:02:08 +02:00

115 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Local Notifications · React native notifications</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img src=&quot;https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/2000px-Apple_logo_black.svg.png&quot; width=30/&gt; iOS"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Local Notifications · React native notifications"/><meta property="og:type" content="website"/><meta property="og:url" content="https://wix.github.io/react-native-notifications/"/><meta property="og:description" content="&lt;img src=&quot;https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/2000px-Apple_logo_black.svg.png&quot; width=30/&gt; iOS"/><meta property="og:image" content="https://wix.github.io/react-native-notifications/img/undraw_online.svg"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://wix.github.io/react-native-notifications/img/undraw_tweetstorm.svg"/><link rel="shortcut icon" href="/react-native-notifications/undefined"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/react-native-notifications/js/scrollSpy.js"></script><link rel="stylesheet" href="/react-native-notifications/css/main.css"/><script src="/react-native-notifications/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/react-native-notifications/"><h2 class="headerTitle">React native notifications</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/react-native-notifications/docs/installation-ios" target="_self">Docs</a></li><li class=""><a href="/react-native-notifications/docs/general-api" target="_self">API</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Guides</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Guides</h3><ul class=""><li class="navListItem"><a class="navItem" href="/react-native-notifications/docs/getting-started">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/react-native-notifications/docs/subscription">Subscription</a></li><li class="navListItem"><a class="navItem" href="/react-native-notifications/docs/notifications-events">Events</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/react-native-notifications/docs/localNotifications">Local Notifications</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Installation</h3><ul class=""><li class="navListItem"><a class="navItem" href="/react-native-notifications/docs/installation-ios">iOS Installation</a></li><li class="navListItem"><a class="navItem" href="/react-native-notifications/docs/installation-android">Android Installation</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Advanced</h3><ul class=""><li class="navListItem"><a class="navItem" href="/react-native-notifications/docs/advanced-ios">iOS</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
for (var i = 0; i < coll.length; i++) {
var links = coll[i].nextElementSibling.getElementsByTagName('*');
if (checkActiveCategory){
for (var j = 0; j < links.length; j++) {
if (links[j].classList.contains('navListItemActive')){
coll[i].nextElementSibling.classList.toggle('hide');
coll[i].childNodes[1].classList.toggle('rotate');
checkActiveCategory = false;
break;
}
}
}
coll[i].addEventListener('click', function() {
var arrow = this.childNodes[1];
arrow.classList.toggle('rotate');
var content = this.nextElementSibling;
content.classList.toggle('hide');
});
}
document.addEventListener('DOMContentLoaded', function() {
createToggler('#navToggler', '#docsNav', 'docsSliderActive');
createToggler('#tocToggler', 'body', 'tocActive');
var headings = document.querySelector('.toc-headings');
headings && headings.addEventListener('click', function(event) {
var el = event.target;
while(el !== headings){
if (el.tagName === 'A') {
document.body.classList.remove('tocActive');
break;
} else{
el = el.parentNode;
}
}
}, false);
function createToggler(togglerSelector, targetSelector, className) {
var toggler = document.querySelector(togglerSelector);
var target = document.querySelector(targetSelector);
if (!toggler) {
return;
}
toggler.onclick = function(event) {
event.preventDefault();
target.classList.toggle(className);
};
}
});
</script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Local Notifications</h1></header><article><div><span><p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/2000px-Apple_logo_black.svg.png" width=30/> iOS</p>
<p>You can manually trigger local notifications in your JS code, to be posted immediately or in the future.
Triggering local notifications is fully compatible with React Native <code>PushNotificationsIOS</code> library.</p>
<p>Example:</p>
<pre><code class="hljs css language-javascript"><span class="hljs-keyword">let</span> localNotification = Notifications.postLocalNotification({
<span class="hljs-attr">body</span>: <span class="hljs-string">"Local notificiation!"</span>,
<span class="hljs-attr">title</span>: <span class="hljs-string">"Local Notification Title"</span>,
<span class="hljs-attr">sound</span>: <span class="hljs-string">"chime.aiff"</span>,
<span class="hljs-attr">silent</span>: <span class="hljs-literal">false</span>,
<span class="hljs-attr">category</span>: <span class="hljs-string">"SOME_CATEGORY"</span>,
<span class="hljs-attr">userInfo</span>: { }
});
</code></pre>
<p>Notification object contains:</p>
<ul>
<li><strong><code>fireDate</code></strong>- The date and time when the system should deliver the notification (optinal - default is immidiate dispatch).</li>
<li><code>body</code>- The message displayed in the notification alert.</li>
<li><code>title</code>- The title of the notification, displayed in the notifications center.</li>
<li><code>alertAction</code>- The &quot;action&quot; displayed beneath an actionable notification on the lockscreen (e.g. &quot;Slide to <strong>open</strong>&quot;). Note that Apple no longer shows this in iOS 10.</li>
<li><code>sound</code>- The sound played when the notification is fired (optional -- will play default sound if unspecified). This must be the filename of a sound included in the application bundle; the sound must be 30 seconds or less and should be encoded with linear PCM or IMA4.</li>
<li><code>silent</code>- Whether the notification sound should be suppressed (optional).</li>
<li><code>category</code>- The category of this notification, required for <a href="#interactive--actionable-notifications-ios-only">interactive notifications</a> (optional).</li>
<li><code>userInfo</code>- An optional object containing additional notification data.</li>
</ul>
<h3><a class="anchor" aria-hidden="true" id="cancel-scheduled-local-notifications"></a><a href="#cancel-scheduled-local-notifications" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Cancel Scheduled Local Notifications</h3>
<p>The <code>Notifications.postLocalNotification()</code> method return unique <code>notificationId</code> values, which can be used in order to cancel specific local notifications that were scheduled for delivery on <code>fireDate</code> and have not yet been delivered. You can cancel local notification by calling <code>Notifications.cancelLocalNotification(notificationId)</code>.</p>
<p>Example:</p>
<pre><code class="hljs css language-javascript"><span class="hljs-keyword">let</span> someLocalNotification = Notifications.postLocalNotification({
<span class="hljs-attr">body</span>: <span class="hljs-string">"Local notificiation!"</span>,
<span class="hljs-attr">title</span>: <span class="hljs-string">"Local Notification Title"</span>,
<span class="hljs-attr">sound</span>: <span class="hljs-string">"chime.aiff"</span>,
<span class="hljs-attr">category</span>: <span class="hljs-string">"SOME_CATEGORY"</span>,
<span class="hljs-attr">userInfo</span>: { }
});
Notifications.cancelLocalNotification(someLocalNotification);
</code></pre>
<p>To cancel all local notifications (<strong>iOS only!</strong>), use <code>cancelAllLocalNotifications()</code>:</p>
<pre><code class="hljs css language-javascript">Notifications.ios.cancelAllLocalNotifications();
</code></pre>
<h4><a class="anchor" aria-hidden="true" id="cancel-delivered-local-notifications-ios-10-only"></a><a href="#cancel-delivered-local-notifications-ios-10-only" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Cancel Delivered Local Notifications (iOS 10+ only)</h4>
<p>To dismiss notifications from the notification center that have already been shown to the user, call <code>Notifications.ios.removeDeliveredNotifications([notificationId])</code>:</p>
<pre><code class="hljs css language-javascript"><span class="hljs-keyword">let</span> someLocalNotification = Notifications.postLocalNotification({...});
Notifications.ios.removeDeliveredNotifications([someLocalNotification]);
</code></pre>
<p>Call <code>removeAllDeliveredNotifications()</code> to dismiss all delivered notifications
(note that this will dismiss push notifications in addition to local
notifications).</p>
<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/APK_format_icon.png/768px-APK_format_icon.png" width=30/> Android</p>
<p>Much like on iOS, notifications can be triggered locally. The API to do so is a simplified version of the iOS equivalent that works more natually with the Android perception of push (remote) notifications:</p>
<pre><code class="hljs css language-javascript">Notifications.postLocalNotification({
<span class="hljs-attr">title</span>: <span class="hljs-string">"Local notification"</span>,
<span class="hljs-attr">body</span>: <span class="hljs-string">"This notification was generated by the app!"</span>,
<span class="hljs-attr">extra</span>: <span class="hljs-string">"data"</span>
});
</code></pre>
<p>Upon notification opening (tapping by the device user), all data fields will be delivered as-is).</p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/react-native-notifications/docs/notifications-events"><span class="arrow-prev"></span><span>Events</span></a><a class="docs-next button" href="/react-native-notifications/docs/installation-ios"><span class="function-name-prevnext">iOS Installation</span><span class="arrow-next"></span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/react-native-notifications/" class="nav-home"></a><div><h5>Docs</h5><a href="/react-native-notifications/docs/getting-started">Getting Started (or other categories)</a><a href="/react-native-notifications/docs/installation-ios">Guides</a><a href="/react-native-notifications/docs/general-api">API Reference</a></div><div></div><div><h5>More</h5><a href="/react-native-notifications/blog">Blog</a><a href="https://github.com/wix/react-native-notifications">GitHub</a><a class="github-button" href="https://github.com/wix/react-native-notifications" data-icon="octicon-star" data-count-href="/facebook/docusaurus/stargazers" data-show-count="true" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">Star</a></div></section><section class="copyright">Copyright © 2020 Wix</section></footer></div></body></html>