From a9a511d0f18828ad28b9810e24bdd1349e38d9ec Mon Sep 17 00:00:00 2001 From: Ibby Hadeed Date: Fri, 24 Mar 2017 15:25:21 -0400 Subject: [PATCH] fix(contacts): fix crash if plugin is unavailable closes #1250 --- src/@ionic-native/plugins/contacts/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/@ionic-native/plugins/contacts/index.ts b/src/@ionic-native/plugins/contacts/index.ts index eace0af62..004970998 100644 --- a/src/@ionic-native/plugins/contacts/index.ts +++ b/src/@ionic-native/plugins/contacts/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { CordovaInstance, InstanceProperty, Plugin, getPromise } from '@ionic-native/core'; +import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability } from '@ionic-native/core'; declare var window: any, navigator: any; @@ -72,9 +72,12 @@ export class Contact implements IContactProperties { @InstanceProperty urls: IContactField[]; constructor() { - this._objectInstance = navigator.contacts.create(); + if (checkAvailability(navigator.contacts, 'create', 'Contacts') === true) { + this._objectInstance = navigator.contacts.create(); + } } + @InstanceCheck() clone(): Contact { let newContact = new Contact(); for (let prop in this) { @@ -87,6 +90,7 @@ export class Contact implements IContactProperties { @CordovaInstance() remove(): Promise { return; } + @InstanceCheck() save(): Promise { return getPromise((resolve, reject) => { this._objectInstance.save((contact) => {