Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
nativescript-live-engage
Advanced tools
A NativeScript plugin to display a LivePerson LiveEngage chat window
This is a plugin to show the conversation from a LiveEngage chat, using the LP-Messaging SDK (Android v3.6.0, iOS v3.6.0).
Run the following command from the root of your project:
npm install nativescript-live-engage
At the launch of your app call initializeChat
with your credentials (our example main.ts):
LiveEngage.getInstance().initializeChat('12345678', 'com.example.myapp');
Set the minSdkVersion to at least 19, in your AndroidManifest.xml and app.gradle.
Include the following dependencies in the include.gradle file of your app:
compile "com.android.support:appcompat-v7:24.2.1"
compile "com.android.support:design:24.2.1"
compile "com.android.support:percent:24.2.1"
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.neovisionaries:nv-websocket-client:1.31'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
You need to enable keychain sharing, to do this we need a custom entitlements file with a keychain-access-groups key.
Add nativescript-custom-entitlements to your devDependencies and create a new entitlements file like our example app.entitlements.
To open the chat window call showChat
:
LiveEngage.getInstance().showChat();
Add the first name, last name, nick name, avatar url or phone number of a user.
const chatProfile: ChatProfile = {
firstName: 'Jane',
lastName: 'Doe',
nickName: 'JD',
phone: '0132100000',
avatarUrl: ''
};
LiveEngage.getInstance().setUserProfileValues(chatProfile);
Add a JWT for oAuth support when starting a conversation. Make sure you configure the Live Person data source to support the oAuth 2 authentication in terms of Live person public keys, Signing identities and possible (custom) claims definitions. Make sure to call this method before you start the conversation.
LiveEngage.getInstance().setAuthenticationCode('<JWT encoded token string>');
When you want to hide the chat window programmatically call closeChat()
.
LiveEngage.getInstance().closeChat();
When you want to remove all user data and unregister for push notifications call killChat()
.
LiveEngage.getInstance().killChat()
.then(() => {
console.log('killChat success');
}).catch((error: any) => {
console.log('killChat error', error);
});
To recieve push notifications when the agent sends a new message you need to send the push token to LivePerson.
When you have a push token (FCM for Android and APNS for iOS) you can send it to LivePerson using registerPushToken
LiveEngage.getInstance().registerPushToken('your-token');
To parse the push notification message on android in onMessageReceived()
in your FirebaseMessagingService, use parsePushMessage()
.
This will return a PushMessageParser
object which has the method getMessage()
to return the title of the push message.
try {
const message = LiveEngage.getInstance().parsePushMessage(data);
console.log(message.getMessage());
} catch (e) {
console.error("Failed to parse message:", e);
}
To get the total amount of unread messages, use getUnreadMessagesCount()
.
This will only work when push notifications are enabled.
LiveEngage.getInstance().getUnreadMessagesCount((count: number) => {
console.log('Unread messages:', count);
}, (error: any) => {
console.log('Failed to get count: ', error);
});
To get notified when the conversation was dismissed, you can provide a callback when opening the chat on iOS:
LiveEngage.getInstance().showChat(() => {
console.log('Chat window was closed');
});
For easier development and debugging purposes continue with the following steps:
Open a command prompt/terminal, navigate to src folder and run npm run demo.ios
or npm run demo.android
to run the demo.
Now go and make a change to your plugin. It will be automatically applied to the demo project.
Sometimes you may need to wipe away all generated folders to reinstall them fresh.
Run npm run clean
to wipe those clean then you can can run plugin.prepare
to install fresh dependencies.
Sometimes you just need to wipe out the demo's platforms, node_modules and hooks directory only.
Run npm run demo.reset
to delete those.
FAQs
A NativeScript plugin to display a LivePerson LiveEngage chat window
The npm package nativescript-live-engage receives a total of 16 weekly downloads. As such, nativescript-live-engage popularity was classified as not popular.
We found that nativescript-live-engage demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 52 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.