0.2.0 • Published 5 years ago

nativescript-call v0.2.0

Weekly downloads
1
License
Apache-2.0
Repository
-
Last release
5 years ago

NativeScript Call plugin

Build Status NPM version Downloads Twitter Follow

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:

PropertyTypeDescription
appNamestringThe app's name, as shown on the caller screen. Default the name of your app.
iconstringThe name of an icon to show for your app. Loaded from the App_Resources folder (see the demo).
handleTypeTNSCallHandleTypeEither "PHONE" (default) or "EMAIL".
handleIdstringEither a phone number when handleType is "PHONE", or an email address when handleType is "EMAIL".
callerNamestringThe name to be displayed on the call UI.
hasVideobooleanWhether or not this call supports video. Default false.
supportsDTMFbooleanWhether 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:

NameDescription
onSpeakerOnTriggered when the speaker is turned on.
onSpeakerOffTriggered 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));