The Prenly App SDK is a JavaScript toolkit tailored for developers looking to integrate their web sites seamlessly with the Prenly native apps, focusing on user authentication and consent management. This repository contains the distribution files for the JavaScript SDK.
npm i prenly-js-bridge
import PrenlyAppSDK from "prenly-js-bridge";
const { api } = new PrenlyAppSDK();
Function | Signature | Description |
---|---|---|
Login | prenlyApp.login(): Promise<UserDataJwt | RequestError> |
Trigger a login flow in the app. |
Logout | prenlyApp.logout(): Promise<UserDataJwt | RequestError> |
Trigger a logout flow in the app. |
Show no access alert | prenlyApp.showNoAccessAlert(): Promise<void> |
Trigger a show no access alert flow in the app. |
Get user JWT | prenlyApp.getUserJwt(): Promise<UserDataJwt | RequestError> |
Retrieve information about the user as a Jwt. |
Get user consent | prenlyApp.getUserConsent(): Promise<UserConsent | null | RequestError> |
Retrieve the current consent that the user granted, or null if no CMP is used. |
Show user consent dialog | prenlyApp.showUserConsentDialog(): Promise<void | RequestError> |
Trigger the display of the consent dialog. |
Play or pause audio | prenlyApp.playPauseAudio(AudioData): Promise<void | RequestError> |
Add audio and play it using the native app player, or pause when playing. |
Queue or dequeue audio | prenlyApp.queueDequeueAudio(AudioData): Promise<void | RequestError> |
Queue or dequeue audio using the native app player. |
Get audio status | prenlyApp.getAudioStatus(AudioId): Promise<AudioStatus | RequestError> |
Retrieve audio status. |
const { api: prenlyApp } = new PrenlyAppSDK();
try {
const userJwt = await prenlyApp.getUserJwt();
// Do stuff with `userJwt`.
} catch (error) {
// If the promise was rejected, handle the error.
}
Function | Signature |
---|---|
Start listening | prenlyApp.on(EventType, (current: Object, previous?: Object) => void): void |
Stop listening (single listener) | prenlyApp.off(EventType, handler): void |
Stop listening (all events of a type) | prenlyApp.off(EventType): void |
Type | Data | Description |
---|---|---|
userConsentChange | UserConsent | Triggers when the user consent changes. |
userLogin | UserDataJwt | Triggers when the user logs in. |
userLogout | UserDataJwt | Triggers when the user logs out. |
audioStatusChange | AudioStatus | Triggers when the status of audio initialized by the SDK is changed. |
Parameter | Description |
---|---|
Parameter 1 | The response object of the current event. |
Parameter 2 | The response object of the previous event, or undefined when no previous event exists. |
prenlyApp.on("userConsentChange", (data: UserConsent) => {
// ...
});
{
jwt: string;
}
The decoded JWT string contains header, payload and signature. The payload has the following definition:
{
// Standard claims:
sub?: string;
given_name?: string;
family_name?: string;
email?: string;
// Custom claims:
customer_number?: string;
prenly_package_slugs?: string[];
is_logged_in: boolean;
}
{
cmp: string;
prenly_purpose_grants?: {
functional: boolean;
analytical: boolean;
marketing: boolean;
};
tc_string?: string;
cmp_purpose_grants?: { [purpose: string]: boolean };
cmp_vendor_grants?: { [vendor: string]: boolean };
}
{
id: string;
}
{
id: string;
audio_url: string;
image_url?: string;
title: string;
description: string;
duration: number; // in seconds
}
{
id: string;
status: "playing" | "paused" | "loading";
queued: boolean;
}
{
code:
| 'rejected'
| 'feature_disabled'
| 'login_failed'
| 'logout_failed'
| 'play_pause_audio_failed'
| 'queue_dequeue_audio_failed';
message?: string;
}