Ionic / Angular отправить SMS на несколько номеров из массива - PullRequest
3 голосов
/ 30 октября 2019

У меня есть проект, который я хочу отправить SMS на список контактов, которые у меня есть. к сожалению, я понятия не имею, как это сделать, и все, что я пытаюсь сделать, просто не работает.

Я хочу перебрать все числа в массиве, а затем отправить SMS с этим IONIC SMS Plugin на этиномера.

Здесь находится компонент, который хранит эти контакты

constructor(private contacts: Contacts, private storage: Storage) {
    this.getContact();
  }
  key = 'contacts';
  mContacts = [
   {
    id: [0],
    name: '',
    number: ''
   },
   {
    id: [1],
    name : [''],
    number: ['']
   },
   {
    id: [2],
    name : [''],
    number: ['']
   },
   {
    id: [3],
    name : [''],
    number: ['']
   },
   {
    id: [4],
    name : [''],
    number: ['']
   }
  ];

  ngOnInit() {}

  pickContact(contactId) {
    this.contacts.pickContact().then((contact) => {
      this.mContacts[contactId].name = contact.name.givenName;
      this.mContacts[contactId].number = contact.phoneNumbers[0].value;
      this.saveContacts();
    });
  }
  saveContacts() {
    this.storage.set(this.key, JSON.stringify(this.mContacts));
  }
  getContact() {
    this.storage.get(this.key).then((val) => {
      console.log('Contact Name: ', val);
      if (val != null && val !== undefined) {
        this.mContacts = JSON.parse(val);
      }
    });
  }
}

, а также функция, отправляющая SMS. он начинается с метода getContacts (), поскольку контакты изначально хранятся с помощью подключаемого модуля хранения IONIC

EDIT

Я хочу получить содержимое списка массивов из компонента Contacts, однако, когдаЯ вызываю функцию sendSMS (), которая возвращает ноль для числа

sendSMS()
{
  this.contactComponent.getContact();
  let number = this.contactComponent.mContacts[0][2];

  let message = "Hello World";
  console.log("number=" + number + ", message= " + message);

  //CONFIGURATION
  var options = {
      replaceLineBreaks: false, // true to replace \n by a new line, false by default
      android: {
          intent: 'INTENT'  // send SMS with the native android SMS messaging
          //intent: '' // send SMS without opening any other app
      }
  };



  this.sms.send(number, message, options);
}

1 Ответ

0 голосов
/ 06 ноября 2019

Надеюсь, это кому-нибудь поможет.

Я решил сделать это вместо этого, чтобы сделать вещи проще.

 this.checkSMSPermission();
  this.contactComponent.getContact();
  const numberOne = this.contactComponent.mContacts[0].number;
  const numberTwo = this.contactComponent.mContacts[1].number;
  const numbeThree = this.contactComponent.mContacts[2].number;
  const numberFour = this.contactComponent.mContacts[3].number;
  const numberFive = this.contactComponent.mContacts[4].number;
  console.log(numberOne);

  // tslint:disable-next-line: max-line-length
  const message = this.messageComponent.dangerMessage + ' my location is: lat: ' + this.latitude.toString() + 'lng: ' + this.longitude.toString();
  console.log('number=' + numberOne + ', message= ' + message);

  // CONFIGURATION
  const options = {
      replaceLineBreaks: false, // true to replace \n by a new line, false by default
      android: {
          intent: ''  // send SMS with the native android SMS messaging
          // intent: '' // send SMS without opening any other app
      }
  };
  this.sms.send(numberOne,numberTwo ,numberThree,numberFour,numberFive, message, options).then(() => {
    this.presentAlert('Success', 'message has been sent');
  })
  .catch(error => {
    this.presentAlert('Error', 'Failed: ' + error);
  });
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...