{"id":558,"date":"2024-05-09T09:14:56","date_gmt":"2024-05-09T09:14:56","guid":{"rendered":"https:\/\/blog.200oksolutions.com\/?p=558"},"modified":"2025-12-04T07:44:08","modified_gmt":"2025-12-04T07:44:08","slug":"remote-and-local-notification-react-native-ios","status":"publish","type":"post","link":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/","title":{"rendered":"Remote And Local Notification React-Native (iOS)"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Structure of Content<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linking APN with FCM<\/li>\n\n\n\n<li>Setup Created Provisioning Profile in Xcode<\/li>\n\n\n\n<li>Configuring Push Notification &amp; Background Mode within Xcode<\/li>\n\n\n\n<li>Setup Project into Firebase Console<\/li>\n\n\n\n<li>Remote Notification<\/li>\n\n\n\n<li>Local Notification<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Linking APN with FCM<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Registering a key (p8 key)<\/strong>\n<ul class=\"wp-block-list\">\n<li>A key can be created that allows full access to the FCM through the Apple Push Notification service (APNs).<\/li>\n\n\n\n<li>On the &#8220;Keys&#8221; menu item, register a new key. The key&#8217;s name can be anything, but it&#8217;s important to ensure that the APN service is enabled.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Registering an App Identifier<\/strong>\n<ul class=\"wp-block-list\">\n<li>To ensure messaging works during the production build of your app, you must create a new app Identifier that is linked to the application you&#8217;re developing.<\/li>\n\n\n\n<li>Click on the &#8216;Identifiers&#8217; menu item and choose &#8216;App IDs&#8217; to register an app identifier.<\/li>\n\n\n\n<li>Enter a description for the identifier.<\/li>\n\n\n\n<li>Enter the &#8220;Bundle ID&#8221; copied from Xcode.<\/li>\n\n\n\n<li>Scroll down and enable the &#8220;Push Notifications&#8221; capability (along with any others your app uses) and save the identifier.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Generating a provisioning profile<\/strong>\n<ul class=\"wp-block-list\">\n<li>A provisioning profile enables signed communicate between Apple and your application. The signing of a certificate is necessary to ensure that the app installed on a device is genuine and has the correct permissions, since messaging is only applicable on real devices.<\/li>\n\n\n\n<li>Select the &#8216;New Profile&#8217; option from the &#8216;Profiles&#8217; menu item, ensure that the &#8216;iOS App Development&#8217; checkbox is checked, and then proceed.<\/li>\n\n\n\n<li>Select your App Identifier already created and Click &#8220;Continue&#8221;. On the next screen you will be presented with the Certificates on your Apple account. Select the user certificates that you wish to assign this provisioning profile too.<\/li>\n\n\n\n<li>The created provisioning profile can now be used when building your application (in both debug and release mode) onto a real device (using Xcode).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Setup Created Provisioning Profile in Xcode<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open your project in Xcode.<\/li>\n\n\n\n<li>In Xcode go into settings, link your apple account if not linked.<\/li>\n\n\n\n<li>Select your project target and select the &#8220;Signing &amp; Capabilities&#8221; tab.<\/li>\n\n\n\n<li>Xcode can automatically sync the profile created above if &#8220;Automatically manage signing&#8221; is enable into &#8220;Signing &amp; Capabilities&#8221; tab. Otherwise, you must manually add the profile from the Apple Developer console.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Configuring Push Notification &amp; Background Mode within Xcode<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Select your project.<\/li>\n\n\n\n<li>Select the project target.<\/li>\n\n\n\n<li>Select the \u201c<strong>Signing &amp; Capabilities<\/strong>\u201d tab.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"702\" height=\"401\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/1.webp\" alt=\"\" class=\"wp-image-607\" style=\"width:694px;height:auto\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/1.webp 702w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/1-300x171.webp 300w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable Push Notification<\/strong><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on the \u201c+ <strong>Capabilities<\/strong>\u201d button.<\/li>\n\n\n\n<li>Search for \u201cPush Notifications\u201d.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"702\" height=\"401\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/2.webp\" alt=\"\" class=\"wp-image-608\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/2.webp 702w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/2-300x171.webp 300w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<ul class=\"wp-block-list\">\n<li><strong>Enable Background Modes<\/strong>\n<ul class=\"wp-block-list\">\n<li>Click on the \u201c+ <strong>Capabilities<\/strong>\u201d button<\/li>\n\n\n\n<li>Search for \u201c<strong>Background Modes<\/strong>\u201d.<\/li>\n\n\n\n<li>Ensure that both the \u201c<strong>Background fetch<\/strong>\u201d and the \u201c<strong>Remote notifications<\/strong>\u201d sub-modes are enabled.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"702\" height=\"401\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/3.webp\" alt=\"\" class=\"wp-image-609\" style=\"width:711px;height:auto\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/3.webp 702w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/3-300x171.webp 300w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"253\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/4.webp\" alt=\"\" class=\"wp-image-610\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/4.webp 706w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/4-300x108.webp 300w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><\/figure>\n<\/div>\n\n\n\n<p><strong>Setup Project into firebase console<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Firebase console account must require<\/li>\n\n\n\n<li>Create a project<\/li>\n\n\n\n<li>Add iOS app into created project, now open your project in Xcode and go to <strong>General\/Identify<\/strong> find <strong>Bundle Identifier<\/strong>, now use same <strong>Bundle Identifier<\/strong>, once app is added make sure download the <strong>GoogleService-Info.plist<\/strong> file and ensure the <strong>\u2018Copy items if needed\u2019<\/strong> checkbox is enabled.<\/li>\n\n\n\n<li>Go to the &#8220;Project settings&#8221; and select the &#8220;Cloud Messaging&#8221; tab. Select your iOS application under the &#8220;iOS app configuration&#8221; heading and upload the downloaded <strong>register p8 key file<\/strong> and enter the <strong>Key ID<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>Remote Notification<\/strong><\/p>\n\n\n\n<p><strong>1. Installation of remote notification module<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using NPM command<\/strong>\n<ul class=\"wp-block-list\">\n<li> npm install &#8211;save @react-native-firebase\/app<\/li>\n\n\n\n<li> npm install &#8211;save @react-native-firebase\/messaging<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using YARN command<\/strong>\n<ul class=\"wp-block-list\">\n<li>yarn add @react-native-firebase\/app<\/li>\n\n\n\n<li>yarn add @react-native-firebase\/messaging<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>2.<\/strong> <strong>Configuration on native iOS<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Configure Firebase with iOS credentials<\/strong>\n<ul class=\"wp-block-list\">\n<li>Open <strong>ios\/{projectName}\/AppDelegate.mm<\/strong> file.\n<ul class=\"wp-block-list\">\n<li>At the top of file, import the Firebase SDK right after \u201c#<strong>import AppDelegate.h<\/strong>\u201d line.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-black-color has-gray-background-color has-text-color has-background has-link-color wp-elements-f4d89d6e895bec85622e11e8058ca8cb\"><code>            #<strong>import &lt;Firebase.h&gt;<\/strong><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Find <strong>didFinishLaunchingWithOptions<\/strong> method, add following line to the top of the method:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-black-color has-gray-background-color has-text-color has-background has-link-color wp-elements-e8cb3bc8504dcae53b76ef1a959d4cb5\"><code>            <strong>&#91;FIRApp configure];<\/strong><\/code><\/pre>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<ul class=\"wp-block-list\">\n<li>Open <strong>ios\/pod<\/strong> file.\n<ul class=\"wp-block-list\">\n<li>add this line inside your targets right before the <strong>use_react_native<\/strong> line.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><strong>use_frameworks! :linkage =&gt; :static<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To use static Frameworks on iOS, you also need to manually enable this for the project with the following global to your \/<strong>ios\/podfile<\/strong> file.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"735\" height=\"59\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/5.webp\" alt=\"\" class=\"wp-image-611\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/5.webp 735w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/5-300x24.webp 300w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Permission setup<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Check the current permission status<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"809\" height=\"290\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/6.webp\" alt=\"\" class=\"wp-image-612\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/6.webp 809w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/6-300x108.webp 300w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/6-768x275.webp 768w\" sizes=\"(max-width: 809px) 100vw, 809px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" style=\"margin-right:0;margin-left:0\">\n<li><strong>Requesting permissions if it is not granted or not requested<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"679\" height=\"201\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/7.webp\" alt=\"\" class=\"wp-image-613\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/7.webp 679w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/7-300x89.webp 300w\" sizes=\"(max-width: 679px) 100vw, 679px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Handle Notifications<\/strong>\n<ul class=\"wp-block-list\">\n<li>Notifications will be received in 3 app state are <strong>Quit, Background and Foreground.<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"210\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/8.webp\" alt=\"\" class=\"wp-image-614\" style=\"width:674px;height:auto\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/8.webp 784w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/8-300x80.webp 300w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/8-768x206.webp 768w\" sizes=\"(max-width: 784px) 100vw, 784px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Quit state<\/strong>: if app in Quit state and tap on notification, <strong>getInitialNotification()<\/strong> method will be triggered with notification data.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"246\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/9.webp\" alt=\"\" class=\"wp-image-615\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/9.webp 749w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/9-300x99.webp 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Background state<\/strong>\n<ul class=\"wp-block-list\">\n<li>To setup a background handler, call the <strong>setBackgroundMessageHandler()<\/strong> outside of your application logic as early as possible.<\/li>\n\n\n\n<li>if app in Background state and tap on notification, <strong>onNotificationOpenedApp()<\/strong> method will be triggered with notification data.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"260\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/10.webp\" alt=\"\" class=\"wp-image-616\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/10.webp 749w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/10-300x104.webp 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"143\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/11.webp\" alt=\"\" class=\"wp-image-617\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/11.webp 749w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/11-300x57.webp 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Foreground state<\/strong>\n<ul class=\"wp-block-list\">\n<li>if app in Foreground state and tap on notification, <strong>onMessage()<\/strong> method will be triggered with notification data<\/li>\n\n\n\n<li>we can create a local notification using notification data received into <strong>onMessage()<\/strong> method listener.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"315\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/12.webp\" alt=\"\" class=\"wp-image-618\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/12.webp 749w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/12-300x126.webp 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<p><strong>Local Notification<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<ol class=\"wp-block-list\">\n<li><strong>Installation of local notification module<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Using NPM command<\/strong>\n<ul class=\"wp-block-list\">\n<li>npm install &#8211;save @notifee\/react-native<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Using YARN command\n<ul class=\"wp-block-list\">\n<li>yarn add @notifee\/react-native<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Create local notification<\/strong><\/li>\n<\/ol>\n<\/div>\n\n\n\n<p>Check out the local notification configuration file for iOS<\/p>\n\n\n\n<p>         <a href=\"https:\/\/200oksolutions-my.sharepoint.com\/personal\/krunalikad_200oksolutions_com\/_layouts\/15\/onedrive.aspx?id=%2Fpersonal%2Fkrunalikad%5F200oksolutions%5Fcom%2FDocuments%2Flocal%2Dnotification%2Dios%2Etxt&amp;parent=%2Fpersonal%2Fkrunalikad%5F200oksolutions%5Fcom%2FDocuments&amp;ga=1\">local-notification-ios.txt<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Handle local notification<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"360\" src=\"https:\/\/blog.200oksolutions.com\/wp-content\/uploads\/2024\/05\/13.webp\" alt=\"\" class=\"wp-image-619\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/13.webp 749w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/13-300x144.webp 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<p><strong>Learn More<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/rnfirebase.io\">https:\/\/rnfirebase.io<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/rnfirebase.io\/messaging\/usage\">https:\/\/rnfirebase.io\/messaging\/usage<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/rnfirebase.io\/messaging\/usage\/ios-setup\">https:\/\/rnfirebase.io\/messaging\/usage\/ios-setup<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/rnfirebase.io\/#3-react-native-cli---ios-setup\">https:\/\/rnfirebase.io\/#3-react-native-cli&#8212;ios-setup<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/notifee.app\/react-native\/docs\/overview\">https:\/\/notifee.app\/react-native\/docs\/overview<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Structure of Content Linking APN with FCM Setup Created Provisioning Profile in Xcode Configuring Push Notification &amp;&hellip;<\/p>\n","protected":false},"author":5,"featured_media":594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,47],"tags":[71,92,14,102],"class_list":["post-558","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-react-native","tag-ios-development","tag-mobile-app-development","tag-react-native","tag-remote-and-local-notification"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Remote And Local Notification React-Native (iOS) Web Development, Software, and App Blog | 200OK Solutions<\/title>\n<meta name=\"description\" content=\"Explore the 200OK Blog \u2013 your go-to source for insights on web development, backend architecture, API design, and tech best practices from industry professionals.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Remote And Local Notification React-Native (iOS) Web Development, Software, and App Blog | 200OK Solutions\" \/>\n<meta property=\"og:description\" content=\"Explore the 200OK Blog \u2013 your go-to source for insights on web development, backend architecture, API design, and tech best practices from industry professionals.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development, Software, and App Blog | 200OK Solutions\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-09T09:14:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-04T07:44:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"2269\" \/>\n\t<meta property=\"og:image:height\" content=\"1316\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Piyush Solanki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piyush Solanki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Remote And Local Notification React-Native (iOS) Web Development, Software, and App Blog | 200OK Solutions","description":"Explore the 200OK Blog \u2013 your go-to source for insights on web development, backend architecture, API design, and tech best practices from industry professionals.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/","og_locale":"en_US","og_type":"article","og_title":"Remote And Local Notification React-Native (iOS) Web Development, Software, and App Blog | 200OK Solutions","og_description":"Explore the 200OK Blog \u2013 your go-to source for insights on web development, backend architecture, API design, and tech best practices from industry professionals.","og_url":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/","og_site_name":"Web Development, Software, and App Blog | 200OK Solutions","article_published_time":"2024-05-09T09:14:56+00:00","article_modified_time":"2025-12-04T07:44:08+00:00","og_image":[{"width":2269,"height":1316,"url":"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","type":"image\/webp"}],"author":"Piyush Solanki","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Piyush Solanki","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#article","isPartOf":{"@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/"},"author":{"name":"Piyush Solanki","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/e07f6b8e3c9a90ce7b3b09427d26155e"},"headline":"Remote And Local Notification React-Native (iOS)","datePublished":"2024-05-09T09:14:56+00:00","dateModified":"2025-12-04T07:44:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/"},"wordCount":819,"commentCount":0,"publisher":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","keywords":["iOS Development","Mobile App Development","react native","Remote And Local Notification"],"articleSection":["Mobile","React Native"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/","url":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/","name":"Remote And Local Notification React-Native (iOS) Web Development, Software, and App Blog | 200OK Solutions","isPartOf":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","datePublished":"2024-05-09T09:14:56+00:00","dateModified":"2025-12-04T07:44:08+00:00","description":"Explore the 200OK Blog \u2013 your go-to source for insights on web development, backend architecture, API design, and tech best practices from industry professionals.","breadcrumb":{"@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage","url":"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","contentUrl":"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","width":2269,"height":1316,"caption":"remote-and-local-notification-android-using-react-native"},{"@type":"BreadcrumbList","@id":"https:\/\/www.200oksolutions.com\/blog\/remote-and-local-notification-react-native-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.200oksolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Remote And Local Notification React-Native (iOS)"}]},{"@type":"WebSite","@id":"https:\/\/www.200oksolutions.com\/blog\/#website","url":"https:\/\/www.200oksolutions.com\/blog\/","name":"Web Development, Software, and App Blog | 200OK Solutions","description":"","publisher":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.200oksolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.200oksolutions.com\/blog\/#organization","name":"Web Development Blog | Software Blog | App Blog","url":"https:\/\/www.200oksolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/09\/200ok_logo-CGzMrWDu.png","contentUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/09\/200ok_logo-CGzMrWDu.png","width":500,"height":191,"caption":"Web Development Blog | Software Blog | App Blog"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/200ok_solutions\/"]},{"@type":"Person","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/e07f6b8e3c9a90ce7b3b09427d26155e","name":"Piyush Solanki","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/962a2b0b4db856e6851ec7d838597a0395adcaae9c0091d223de9942a4254461?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/962a2b0b4db856e6851ec7d838597a0395adcaae9c0091d223de9942a4254461?s=96&d=mm&r=g","caption":"Piyush Solanki"},"description":"Piyush is a seasoned PHP Tech Lead with 10+ years of experience architecting and delivering scalable web and mobile backend solutions for global brands and fast-growing SMEs. He specializes in PHP, MySQL, CodeIgniter, WordPress, and custom API development, helping businesses modernize legacy systems and launch secure, high-performance digital products. He collaborates closely with mobile teams building Android &amp; iOS apps , developing RESTful APIs, cloud integrations, and secure payment systems using platforms like Stripe, AWS S3, and OTP\/SMS gateways. His work extends across CMS customization, microservices-ready backend architectures, and smooth product deployments across Linux and cloud-based environments. Piyush also has a strong understanding of modern front-end technologies such as React and TypeScript, enabling him to contribute to full-stack development workflows and advanced admin panels. With a successful delivery track record in the UK market and experience building digital products for sectors like finance, hospitality, retail, consulting, and food services, Piyush is passionate about helping SMEs scale technology teams, improve operational efficiency, and accelerate innovation through backend excellence and digital tools.","url":"https:\/\/www.200oksolutions.com\/blog\/author\/piyush\/"}]}},"_links":{"self":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=558"}],"version-history":[{"count":20,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/558\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/558\/revisions\/620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/media\/594"}],"wp:attachment":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}