cordova-plugin-emma-sdk

1.7.1 • Public • Published

Cordova EMMA plugin for Android and iOS

npm version Build Status

For any question related to support, you can write to support@emma.io, we will answer as soon as possible.

EMMA website: https://emma.io
Documentation: https://docs.emma.io
Developer Documentation: https://developer.emma.io

❗️Important Native SDK documentation is conceptually equals to cordova plugin.

Table of content

  • iOS SDK v4.13.1
  • Android SDK v4.13.0
$ cordova plugin add cordova-plugin-emma-sdk --variable ADD_PUSH=1

❗️Important This setup is focused on an Ionic app.

Session key.

To obtain the key you have to create an EMMA account and create an app. In My account section you will find the key. For more information contact support.

First, add to config.xml file:

<platform  name="android">
	<resource-file src="resources/android/notification/drawable-mdpi-notification.png" target="app/src/main/res/drawable-mdpi/notification.png" />
	<resource-file src="resources/android/notification/drawable-hdpi-notification.png" target="app/src/main/res/drawable-hdpi/notification.png" />
	<resource-file src="resources/android/notification/drawable-xhdpi-notification.png" target="app/src/main/res/drawable-xhdpi/notification.png" />
	<resource-file src="resources/android/notification/drawable-xxhdpi-notification.png" target="app/src/main/res/drawable-xxhdpi/notification.png" />
	<resource-file src="resources/android/notification/drawable-xxxhdpi-notification.png" target="app/src/main/res/drawable-xxxhdpi/notification.png" />

	<resource-file src="google-services.json" target="app/google-services.json" />

	<!-- Optional permissions for location -->
	<config-file parent="/manifest" target="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
		<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
		<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
	</config-file>

	<config-file parent="/manifest/application" target="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">

		<service android:enabled="true" android:exported="false" android:name="io.emma.android.push.EMMAFcmMessagingService">
			<intent-filter>
				<action android:name="com.google.firebase.MESSAGING_EVENT" />
			</intent-filter>
		</service>

		<activity android:name="io.emma.android.activities.EMMADeepLinkActivity" android:noHistory="true" android:theme="@android:style/Theme.NoDisplay">
			<intent-filter>
				<action android:name="android.intent.action.VIEW" />
				<category android:name="android.intent.category.DEFAULT" />
				<category android:name="android.intent.category.BROWSABLE" />
				<data android:scheme="${scheme}" />
			</intent-filter>
		</activity>

		<meta-data android:name="io.emma.DEEPLINK_OPEN_ACTIVITY" android:value="${config_id}.MainActivity" />

	</config-file>
<platform>

Remember replace:

  • ${config_id} for id in config.xml file.
  • ${scheme} for your app scheme (eg. ionicapp). In iOS is necessary configure URL types in Xcode.
  • Add the google-services.json explained in push

Declare window at the top of component where plugin is used:

declare var window: any;

Initialize the plugin:

this.platform.ready().then(() => {
  document.addEventListener('onDeepLink', (event) => {
    //process deeplink(eg. added in rich push)
  });
  document.addEventListener('onDeviceId', (event) => {
    //event.deviceId
  });

  const EMMA = window.plugins.EMMA; // gets EMMA plugin instance

  const configuration = {
    sessionKey: '<session_key>', //session key from EMMA Dashboard
    debug: true
  };

  EMMA.startSession(configuration);

  // Start push with options. Options are only used for Android. iOS use default app icon and open default controller
  const pushOptions = {
    classToOpen: '${config_id}.MainActivity', //replace ${config_id} for id in config.xml file
    iconResource: 'notification' // icon added in config.xml file
  };

  EMMA.startPush(pushOptions);

  this.statusBar.styleDefault();
  this.splashScreen.hide();
});

English
Spanish

See example project here.

Package Sidebar

Install

npm i cordova-plugin-emma-sdk

Weekly Downloads

61

Version

1.7.1

License

MIT

Unpacked Size

4.43 MB

Total Files

81

Last publish

Collaborators

  • jaumecornado
  • acarreraemma