Push Notification

Last updated 5 months ago

This section guide to config the app to work with OneSignal app

  1. You need to setup OneSignal account to support push notification (https://onesignal.com)

  2. Install OneSignal Wordpress plugin to support push notification after publish a post:

iOS Config

Login to Onesignal, create a new app, go to app setting Config the Apple IOS

Click Config to open the popup config, follow the guide Generate ios push Certificate to generate the certificate and upload to the site.

Select Tab "Keys & Id" to get the OneSignal app id, and open MStore project, go toi osios/AppDelegate.m and replace the App Id by your One Signal App Id

self.oneSignal = [[RCTOneSignal alloc] initWithLaunchOptions:launchOptions appId:@ YOUR-APP-ID]

Android config

Follow the same guide above for iOS

Select Tab "Keys & Id" to get the OneSignal app id, Go to android/app/build.grade and change the APP_ID & GOOGLE PROJECT NUMBER:

manifestPlaceholders = [onesignal_app id: "APP_ID ", onesignal_google_project number: "PROJECT_NUMBER "]

NOTE: The download package has already configure all the setting for you, but you need to replace the APP_ID to integrate with your OneSignal account. You can also refer detail document here for setting up.

Install Wordpress plugin

Go to Configuration and fill in the APP ID, REST API Key, and your subdomain.

The default setting for the plugin "Automatically send a push notification when I create a post from the WordPress editor" is turn on, it's mean whenever you publish the post item, it will send notification auto to your user mobiles.

Notes: when testing the app with push notification, you may could not open the post directly when receiving the message, instead of opening the Webview from the app. To fix this issues, please update the functions.php file, this file is also discussed at the Basic app setting topic (the comment section):

function onesignal_send_notification_filter($fields, $new_status, $old_status, $post)
{
$fields['isAndroid'] = true;
$fields['isIos'] = true;
$fields['isAnyWeb'] = false;
$fields['isChrome'] = false;
$fields['data'] = array(
"id" => $post->ID,
);
/* Unset the URL to prevent opening the browser when the notification is clicked */
unset($fields['url']);
return $fields;
}
add_filter('onesignal_send_notification', 'onesignal_send_notification_filter', 10, 4);

You can also send the push notification manually through the OneSignal admin.