Cara mudah membuat fungsi simpan Nomor Handphone tanpa Plugin dan tanpa Permission di Nativescript 8 (Core Javascript)

 

Cara mudah membuat fungsi simpan Nomor Handphone tanpa Plugin dan tanpa Permission di Nativescript 8 (Core Javascript)

Pada pembahasan kali ini saya akan membahas tentang bagaimana cara menyimpan nomor handphone ke phone contact tanpa plugin dan tanpa permission. Saya pernah menghadapi kasus kyk gini, dimana saya ada kebutuhan untuk melalukan aksi menimpan nomor handphone saja. 

Sebenarnya untuk melakukan hal ini kita bisa menggunakan plugin yang namanya Nativescript Contact, dengan menggunakan plugin ini kita dapat me-manage data kontak yang ada di HP, dari mulai menambahkan, mengedit dan menghapus. 

Namun hal tersebut tidak sesuai dengan kebutuhan, saya hanya membutuhkan aksi untuk menyimpan nomor handphone-nya saja. Sebenarnya bisa saja menggunakan plugin Nativescript Contact, namun hal itu bakal berpengaruh ke ukuran file Aplikasi kita yang akan sedikit membengkak karna menambah plugin baru.

Maka dari itu kita bisa membuat fungsinya sendiri tanpa bantuan plugin. Flow dari fungsi yang akan saya bagikan kurang lebih seperi ini:

Flow save contact data to phone book without permission

Jika kamu perhatikan flow di atas, fungsi yang saya buat ini akan memanfaatkan Aplikasi Phone Contact bawaan yang secara default terpasang di HP Android. Jadi dari aplikasi kita hanya bertugas mengirimkan data kontak seperti nama dan nomor HP. Dengan cara ini kamu tidak perlu menambahkan permission baru di aplikasi mu dan untuk ukuran aplikasi mu tidak akan membengkak, karna hanya butuh satu function untuk melakukan ini. Kurang lebih sebagai berikut contoh kode-nya :

import {
  Utils,
  isAndroid,
  isIOS,
} from "@nativescript/core";

export function saveContactToPhoneBook() {
  const contactName = "Kang Cahya";
  const contactNumber = "081234567890";

  if (isAndroid) {
    // Android Intent to add a contact
    const uri = android.net.Uri.parse("content://contacts/people/");

    const intent = new android.content.Intent(
      android.content.Intent.ACTION_INSERT,
      uri
    );

    intent.setType(android.provider.ContactsContract.Contacts.CONTENT_TYPE);
    intent.putExtra(
      android.provider.ContactsContract.Intents.Insert.NAME,
      contactName
    );
    intent.putExtra(
      android.provider.ContactsContract.Intents.Insert.PHONE,
      contactNumber
    );

    Utils.android.getCurrentActivity().startActivity(intent);
  } else if (isIOS) {
    // iOS URL scheme to add a contact
    const url = `telprompt:${contactNumber}`;
    Utils.ios.openURL(url);
  }
}

Kode di atas hanya mengakomodasi untuk menyimpan nama dan nomor HP saja. Tetapi kamu juga dapat menambahkan informasi lainnya seperti :

  • Email
  • Address
  • Company
  • Job Title
  • Notes
  • Website

Kurang lebih seperti ini contoh kode-nya :

import {
  Utils,
  isAndroid,
  isIOS,
} from "@nativescript/core";

export function _saveContactNumber() {
  const contact = {
    name: "Kang Cahya",
    phoneNumber: "081234567890",
    email: "admin@kang-cahya.com",
    address: "123 Main St, Indonesia",
    company: "ABC Company",
    jobTitle: "Software Engineer",
    notes: "This is a sample note.",
    website: "https://kang-cahya.com",
  };
  }

  if (isAndroid) {
    // Android Intent to add a contact
    const uri = android.net.Uri.parse("content://contacts/people/");

    const intent = new android.content.Intent(
      android.content.Intent.ACTION_INSERT,
      uri
    );

    intent.setType(android.provider.ContactsContract.Contacts.CONTENT_TYPE);
    // Basic Information
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.NAME, contact.name);
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE, contact.phoneNumber);
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.EMAIL, contact.email);

    // Address Information
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.POSTAL, contact.address);

    // Organization
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.COMPANY, contact.company);
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.JOB_TITLE, contact.jobTitle);

    // Additional Information
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.NOTES, contact.notes);
    intent.putExtra(android.provider.ContactsContract.Intents.Insert.WEBSITE, contact.website);

    Utils.android.getCurrentActivity().startActivity(intent);
  } else if (isIOS) {
    // iOS URL scheme to add a contact
    const url = `telprompt:${contactNumber}`;
    Utils.ios.openURL(url);
  }
}

Mungkin cukup sekian dahulu untuk pembahasan kali ini, semoga bermanfaat, terimakasih :)




0/Post a Comment/Comments

Lebih baru Lebih lama