npm i --save nativescript-call
- Version: 0.2.0
- GitHub:
- NPM: https://www.npmjs.com/package/nativescript-call
- Downloads:
- Last Day: 0
- Last Week: 0
- Last Month: 0
NativeScript Call plugin
Dude, I already have a Phone app on my phone..
Sure 😅
But what if your app supports VOIP / WebRTC calls? You'll want to have the operating system pop up the native call dialog, right? That's where this plugin comes in.
Currently iOS only, where we leverage CallKit, which is part of the iOS SDK since iOS 10.
Installation
tns plugin add nativescript-call
Demo
Check the source in the demo folder, or run it on your own device:
git clone https://github.com/EddyVerbruggen/nativescript-call
cd nativescript-call/src
npm i
npm run demo.ios
Usage in NativeScript-Angular and NativeScript-Vue is nothing different from what you'd do in NativeScript-Core.
API
receiveCall
The properties you can pass to this method are:
| Property | Type | Description |
|---|---|---|
| appName | string |
The app's name, as shown on the caller screen. Default the name of your app. |
| icon | string |
The name of an icon to show for your app. Loaded from the App_Resources folder (see the demo). |
| handleType | TNSCallHandleType |
Either "PHONE" (default) or "EMAIL". |
| handleId | string |
Either a phone number when handleType is "PHONE", or an email address when handleType is "EMAIL". |
| callerName | string |
The name to be displayed on the call UI. |
| hasVideo | boolean |
Whether or not this call supports video. Default false. |
| supportsDTMF | boolean |
Whether the call can send DTMF (dual tone multifrequency) tones via hard pause digits or in-call keypad entries. Default false. |
The event handlers you can pass to this method are:
| Name | Description | | --- | --- | --- | | onSpeakerOn | Triggered when the speaker is turned on. | | onSpeakerOff | Triggered when the speaker is turned off. |
import { TNSCall } from "nativescript-call";
const tnsCall = new TNSCall();
tnsCall.receiveCall(
{
appName: "My App",
icon: "download-from-cloud", // see demo/app/App_Resources/iOS
handleType: "PHONE",
handleId: "+31612345678",
callerName: "Donald J. Drumpf",
hasVideo: true,
supportsDTMF: true,
onSpeakerOn: () => console.log("Speaker ON"),
onSpeakerOff: () => console.log("Speaker OFF")
})
.then(() => console.log("Receive call success"))
.catch(err => console.log("Error receiving call: " + err));
endCall
import { TNSCall } from "nativescript-call";
const tnsCall = new TNSCall();
tnsCall.endCall()
.then(() => console.log("Ended call"))
.catch(err => console.log("Error ending call: " + err));