{"id":558,"date":"2024-05-09T09:14:56","date_gmt":"2024-05-09T09:14:56","guid":{"rendered":"https:\/\/200oksolutionssandbox.co.uk\/blog\/?p=558"},"modified":"2024-07-30T08:29:10","modified_gmt":"2024-07-30T08:29:10","slug":"remote-and-local-notification-react-native-ios","status":"publish","type":"post","link":"https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/1.webp\" alt=\"\" class=\"wp-image-607\" style=\"width:694px;height:auto\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/1.webp 702w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/2.webp\" alt=\"\" class=\"wp-image-608\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/2.webp 702w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/3.webp\" alt=\"\" class=\"wp-image-609\" style=\"width:711px;height:auto\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/3.webp 702w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/4.webp\" alt=\"\" class=\"wp-image-610\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/4.webp 706w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/5.webp\" alt=\"\" class=\"wp-image-611\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/5.webp 735w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/6.webp\" alt=\"\" class=\"wp-image-612\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/6.webp 809w, https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/6-300x108.webp 300w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/7.webp\" alt=\"\" class=\"wp-image-613\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/7.webp 679w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/8.webp\" alt=\"\" class=\"wp-image-614\" style=\"width:674px;height:auto\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/8.webp 784w, https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/8-300x80.webp 300w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/9.webp\" alt=\"\" class=\"wp-image-615\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/9.webp 749w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/10.webp\" alt=\"\" class=\"wp-image-616\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/10.webp 749w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/11.webp\" alt=\"\" class=\"wp-image-617\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/11.webp 749w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/12.webp\" alt=\"\" class=\"wp-image-618\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/12.webp 749w, https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/13.webp\" alt=\"\" class=\"wp-image-619\" srcset=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/13.webp 749w, https:\/\/200oksolutionssandbox.co.uk\/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&hellip;<\/p>\n","protected":false},"author":1,"featured_media":594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,47],"tags":[71,92,103,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-2","tag-remote-and-local-notification"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Remote And Local Notification React-Native (iOS)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/200oksolutionssandbox.co.uk\/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)\" \/>\n<meta property=\"og:description\" content=\"Structure of Content Linking APN with FCM Setup Created Provisioning Profile in Xcode Configuring Push&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61552217825863\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-09T09:14:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-30T08:29:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/200oksolutionssandbox.co.uk\/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=\"BlogAdmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"BlogAdmin\" \/>\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)","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:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/","og_locale":"en_US","og_type":"article","og_title":"Remote And Local Notification React-Native (iOS)","og_description":"Structure of Content Linking APN with FCM Setup Created Provisioning Profile in Xcode Configuring Push&hellip;","og_url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61552217825863","article_published_time":"2024-05-09T09:14:56+00:00","article_modified_time":"2024-07-30T08:29:10+00:00","og_image":[{"width":2269,"height":1316,"url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","type":"image\/webp"}],"author":"BlogAdmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"BlogAdmin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#article","isPartOf":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/"},"author":{"name":"BlogAdmin","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#\/schema\/person\/ea0b72006227b3403f5ad825b82ced43"},"headline":"Remote And Local Notification React-Native (iOS)","datePublished":"2024-05-09T09:14:56+00:00","dateModified":"2024-07-30T08:29:10+00:00","mainEntityOfPage":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/"},"wordCount":819,"commentCount":0,"publisher":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#organization"},"image":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/","url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/","name":"Remote And Local Notification React-Native (iOS)","isPartOf":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage"},"image":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/200oksolutionssandbox.co.uk\/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":"2024-07-30T08:29:10+00:00","breadcrumb":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#primaryimage","url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2024\/05\/remote-and-local-notification-android-using-react-native-1.webp","contentUrl":"https:\/\/200oksolutionssandbox.co.uk\/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:\/\/200oksolutionssandbox.co.uk\/blog\/remote-and-local-notification-react-native-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/200oksolutionssandbox.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"Remote And Local Notification React-Native (iOS)"}]},{"@type":"WebSite","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#website","url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/","name":"","description":"","publisher":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/200oksolutionssandbox.co.uk\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#organization","name":"Web Development Blog | Software Blog | App Blog","url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2026\/01\/200ok_logo.png","contentUrl":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-content\/uploads\/2026\/01\/200ok_logo.png","width":500,"height":191,"caption":"Web Development Blog | Software Blog | App Blog"},"image":{"@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61552217825863"]},{"@type":"Person","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#\/schema\/person\/ea0b72006227b3403f5ad825b82ced43","name":"BlogAdmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/200oksolutionssandbox.co.uk\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/53ecc99d859b4d3444ee1e076f3b5d9da9962836d1c20b3b44d73574f435740d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/53ecc99d859b4d3444ee1e076f3b5d9da9962836d1c20b3b44d73574f435740d?s=96&d=mm&r=g","caption":"BlogAdmin"},"sameAs":["http:\/\/blog.200oksolutions.com"],"url":"https:\/\/200oksolutionssandbox.co.uk\/blog\/author\/blogadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/posts\/558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=558"}],"version-history":[{"count":20,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/posts\/558\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/posts\/558\/revisions\/620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/media\/594"}],"wp:attachment":[{"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/200oksolutionssandbox.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}