React Native CallKeep izmanto pavisam jaunu iOS 10 ietvaru CallKit

Blogs

React Native CallKeep izmanto pavisam jaunu iOS 10 ietvaru CallKit

React Native CallKeep izmanto pavisam jaunu iOS 10 ietvaru CallKit

Reaģēt uz vietējo zvanu

Reaģēt uz vietējo zvanu izmanto pavisam jaunu iOS 10 ietvaru CallKit un Android ConnectionService lai atvieglotu dzīvi VoIP izstrādātājiem, izmantojot React Native.



Lai iegūtu vairāk informācijas par CallKit operētājsistēmā iOS, lūdzu, skatiet Oficiālais CallKit ietvara dokuments vai Xamarin ievads CallKit

Lai iegūtu vairāk informācijas par ConnectionService operētājsistēmā Android, lūdzu, skatiet Android dokumentācija un Izveidojiet zvanīšanas lietotni



Demo

Demonstrācija | _+_ | ir pieejams wazo-rea-dzimtā-demo krātuve.

Android

Savienojuma pakalpojums



ios

Savienojuma pakalpojums

Uzstādīšana

react-native-callkeep

Lietošana

Uzstādīt

npm install --save react-native-callkeep # or yarn add react-native-callkeep
  • | _+_ |: Objekts
    • | _+_ |: objekts
      • | _+_ |: virkne (obligāti) Tas tiks parādīts sistēmas lietotāja saskarnē, kad tiks saņemti ienākošie zvani
      • | _+_ |: virkne (pēc izvēles) Ja ir nodrošināta, zvana laikā tā tiks parādīta sistēmas lietotāja saskarnē
      • | _+_ |: virkne (pēc izvēles) Ja tiek nodrošināta, tā tiks atskaņota, saņemot ienākošos zvanus; sistēma izmantos noklusējuma zvana signālu, ja tas nav paredzēts
      • | _+_ |: Būla (neobligāti)
      • | _+_ |: virkne (pēc izvēles) Ja norādīts, maksimālais zvanu grupu skaits, ko atbalsta šī lietojumprogramma (noklusējums: 3)
      • | _+_ |: virkne (pēc izvēles) Ja ir norādīts, maksimālais zvanu skaits vienā grupā, ko izmanto konferencēm (noklusējums: 1, bez konferences)
      • | _+_ |: Būla (neobligāti)
    • | _+_ |: objekts
      • | _+_ |: virkne (obligāta) Ja tiek prasīts tālruņa konts atļauja, mums ir jānorāda | _+_ | nosaukums lai to pajautātu lietotājam
      • | _+_ |: virkne (obligāta) Ja tiek prasīts tālruņa konts mums ir jāsniedz | _+_ | apraksts lai to pajautātu lietotājam
      • | _+_ |: virkne (obligāti) Atcelt pogas etiķeti
      • | _+_ |: virkne (obligāti) Labi pogas etiķete
      • | _+_ |: virkne (pēc izvēles) Attēls, kas jāizmanto lietotnes Android Phone vietējā lietotāja saskarnē, lai iespējotu/atspējotu zvanīšanas kontus. Jābūt 48x48 HDPI grayscale.png '> RNCallKeep.setAvailable (true);
        • | _+_ |: Būla
          • Pastāstiet, vai lietotne ir gatava vai nē

        setCurrentCallActive

        Šī funkcija ir pieejama tikai operētājsistēmā Android.

        Atzīmējiet pašreizējo zvanu kā aktīvu (piemēram: kad zvanītājs ir atbildējis). Nepieciešams, lai iestatītu pareizās Android iespējas (turēt, izslēgt skaņu), kad zvans ir iestatīts kā aktīvs. Noteikti iestatiet to tikai pēc tam, kad zvans ir gatavs divvirzienu skaņai; izmantoja gan ienākošos, gan izejošos zvanus.

        import RNCallKeep from 'react-native-callkeep'; const options = { ios: { appName: 'My app name', }, android: { alertTitle: 'Permissions required', alertDescription: 'This application needs to access your phone accounts', cancelButton: 'Cancel', okButton: 'ok', imageName: 'phone_account_icon', additionalPermissions: [PermissionsAndroid.PERMISSIONS.example] } }; RNCallKeep.setup(options).then(accepted => {});
        • | _+_ |: virkne
          • | _+_ | izmanto | _+_ | vai | _+_ |

        isCallActive

        Šī funkcija ir pieejama tikai operētājsistēmā IOS.

        Atgriež vērtību true, ja nodotais UUID atbilst esošam un atbildētam zvanam. Tas atgriezīs patiesību TIKAI, ja zvans pastāv un lietotājs jau ir atbildējis uz zvanu. Tas atgriezīs nepatiesu, ja zvans neeksistē vai uz to nav atbildēts. Tas ir pakļauts gan React Native, gan Native pusēm. Tas tika atklāts, tāpēc zvanu var atcelt, ja zvana un lietotājs atbildēja citā ierīcē.

        options
        • | _+_ |: virkne
          • | _+_ | izmanto | _+_ | vai | _+_ |

        displayIncomingCall

        Parādiet sistēmas lietotāja saskarni ienākošajiem zvaniem

        ios
        • | _+_ |: virkne
          • Un | _+_ | kas jāuzglabā un atkārtoti jāizmanto | _+_ |.
        • | _+_ |: virkne
          • Zvanītāja tālruņa numurs
        • | _+_ |: virkne (pēc izvēles)
          • Zvanītāja vārds, kas jāparāda vietējā lietotāja saskarnē
        • | _+_ |: virkne (pēc izvēles, tikai iOS)
          • appName
          • | _+_ | (noklusējums)
          • imageName
        • | _+_ |: Būla vērtība (pēc izvēles, tikai iOS)
          • | _+_ | (noklusējums)
          • | _+_ | (jūs zināt ... kad tas nav nepatiesi)

        atbildeIenākošais zvans

        Šī funkcija ir pieejama tikai operētājsistēmā Android.

        Izmantojiet to, lai informētu sdk, ka lietotājs atbildēja uz zvanu no lietotnes saskarnes.

        ringtoneSound
        • | _+_ |: virkne
          • | _+_ | izmanto | _+_ | vai | _+_ |

        startCall

        Kad veicat izejošo zvanu, pastāstiet ierīcei, ka notiek zvans. Argumentu saraksts iOS un Android ierīcēs ir nedaudz atšķirīgs:

        iOS:

        includesCallsInRecents

        Android:

        maximumCallGroups
        • | _+_ |: virkne
          • Un | _+_ | kas jāuzglabā un atkārtoti jāizmanto | _+_ |.
        • | _+_ |: virkne
          • Izsauktā tālruņa numurs
        • | _+_ |: virkne
          • Identifikators tiek parādīts vietējā zvana lietotāja saskarnē, un tas parasti ir zvana saņēmēja vārds.
        • | _+_ |: virkne (pēc izvēles, tikai iOS)
          • maximumCallsPerCallGroup
          • | _+_ | (noklusējums)
          • supportsVideo
        • | _+_ |: Būla vērtība (pēc izvēles, tikai iOS)
          • | _+_ | (noklusējums)
          • | _+_ | (jūs zināt ... kad tas nav nepatiesi)

        updateDisplay

        Izmantojiet to, lai atjauninātu displeju pēc izejošā zvana sākuma.

        android
        • | _+_ |: virkne
          • | _+_ | izmanto | _+_ | vai | _+_ |
        • | _+_ |: virkne (pēc izvēles)
          • Zvanītāja vārds, kas jāparāda vietējā lietotāja saskarnē
        • | _+_ |: virkne
          • Zvanītāja tālruņa numurs

        endCall

        Kad esat pabeidzis ienākošo/izejošo zvanu.
        (Kad lietotājs aktīvi izvēlas pārtraukt zvanu no jūsu lietotnes lietotāja interfeisa.)

        alertTitle
        • | _+_ |: virkne
          • | _+_ | izmanto | _+_ | vai | _+_ |

        endAllCalls

        Pārtrauciet visus notiekošos zvanus.

        Alert

        rejectCall

        Kad noraidāt ienākošo zvanu.

        alertDescription
        • | _+_ |: virkne
          • | _+_ | izmanto | _+_ | vai | _+_ |

        reportEndCallWithUUID

        Ziņojiet, ka zvans beidzās bez lietotāja iniciatīvas.
        (Lietotājs to nepabeidza, parasti šādu iemeslu dēļ)

        Alert
        • | _+_ |: virkne

          • | _+_ | izmanto | _+_ | vai | _+_ |
        • | _+_ |: int

          • Zvana beigu iemesls
            • Zvans neizdevās: 1
            • Tālruņa lietotājs beidzis zvanu: 2
            • Attālais lietotājs neatbildēja: 3
            • Atbildēts uz zvanu citur: 4
            • Zvans tika noraidīts citur: 5 (operētājsistēmā Android tas tiks kartēts līdz attāla lietotāja beigu zvanam, ja izmantojat konstantes)
            • Neatbildēts: 6 (operētājsistēmā iOS tas tiks kartēts uz attālā lietotāja pabeigto zvanu)
          • Piekļuves iemesli kā konstantas
          cancelButton

        setMutedCall

        Ieslēdziet/izslēdziet mikrofonu.

        okButton
        • | _+_ |: virkne
          • uuid no pašreizējā zvana.
        • | _+_ |: Būla

        setOnHold

        Iestatiet zvanu ieslēgšanas/izslēgšanas aizturēšanu.

        imageName
        • | _+_ |: virkne
          • uuid no pašreizējā zvana.
        • | _+_ |: Būla

        checkIfBusy

        Pārbauda, ​​vai ierīcē ir aktīvi zvani, un atgriež solījumu ar Būla vērtību (| _+_ | ja ir aktīvi zvani, | _+_ | citādi). Šī funkcija ir pieejama tikai operētājsistēmā iOS.

        active

        checkSpeaker

        Pārbauda, ​​vai ierīces skaļrunis ir ieslēgts, un atgriež solījumu ar Būla vērtību (| _+_ | ja skaļrunis ir ieslēgts, | _+_ | citādi). Šī funkcija ir pieejama tikai operētājsistēmā iOS.

        RNCallKeep.setCurrentCallActive(uuid);

        supportConnectionService (asinhronizācija)

        Norāda, vai | _+_ | ir pieejams ierīcē (atgriež Būla vērtību).

        Šī funkcija ir pieejama tikai operētājsistēmā Android.

        uuid

        hasPhoneAccount (async)

        Pārbauda, ​​vai lietotājs ir iespējojis tālruņa konts jūsu pieteikumam. Ir jābūt iespējotam tālruņa kontam, lai ienākošajā zvanā varētu parādīt lietotāja saskarnes ekrānu un veikt izejošos zvanus no vietējās kontaktpersonu lietojumprogrammas.

        Atgriež Būla vērtības solījumu.

        Šī funkcija ir pieejama tikai operētājsistēmā Android.

        uuid

        hasOutgoingCall (asinhronizācija)

        Šī funkcija ir pieejama tikai operētājsistēmā Android, un tā ir noderīga, kad tiek aktivizēta izejošā zvana programma.

        Pamodinot Android lietojumprogrammu fona režīmā (piemēram: kad lietojumprogramma tiek nogalināta un lietotājs veic zvanu no vietējās tālruņa lietojumprogrammas). Lietotājs var pārtraukt zvanu, pirms jūsu programma ir startēta fona režīmā, un jūs varat pazaudēt | _+_ | notikums.

        Lai pārliecinātos, ka izejošais zvans joprojām ir šeit, varat zvanīt | _+_ | kad lietotne pamostas.

        startCall

        hasDefaultPhoneAccount

        Pārbauda, ​​vai lietotājs ir iestatījis noklusējumu tālruņa konts . Ja lietotājs nav iestatījis noklusējuma iestatījumu, viņam tiks piedāvāts to izdarīt ar brīdinājumu.

        Tas ir risinājums risinājumam izdevums ietekmē dažas Samsung ierīces.

        Šī funkcija ir pieejama tikai operētājsistēmā Android.

        displayIncomingCall

        backToForeground

        Šī funkcija ir pieejama tikai operētājsistēmā Android.

        Izmantojiet to, lai parādītu lietojumprogrammu priekšplānā, ja tā bija fona stāvoklī. Šī metode atver lietojumprogrammu, ja tā ir aizvērta.

        RNCallKeep.isCallActive(uuid);

        Notikumi

        didReceivedStartCallAction

        Ierīce nosūta šo notikumu, tiklīdz tā nolemj, ka lietotnei ir atļauts sākt zvanu, vai nu no iebūvētiem tālruņa ekrāniem (iOS/ Nesenie , Android / Kontakti ) vai zvanot lietotnei | _+_ |.

        Mēģiniet sākt lietotnes izsaukuma darbību no šejienes (piemēram, iegūstiet lietotāja akreditācijas datus ar | _+_ | un/vai nosūtiet UZAICINĀJUMU uz savu SIP serveri)

        Piezīme: operētājsistēmā iOS | _+_ | nav definēts, jo zvanu vēl nepārvalda CallKit. Jums ir jāģenerē savs un jāzvana | _+_ |.

        uuid
        • | _+_ | (virkne)
          • Izsauktā tālruņa numurs
        • | _+_ | (virkne)
          • Zvana UUID, uz kuru jāatbild
        • | _+_ | (virkne)
          • Izsauktā vārds

        - atbildiZvani

        Lietotājs atbild uz ienākošo zvanu

        uuid
        • | _+_ | (virkne)
          • Zvana UUID, uz kuru jāatbild.

        - endCall

        Lietotājs pabeidz zvanu.

        startCall
        • | _+_ | (virkne)
          • Pārtrauktā zvana UUID.

        - didActivateAudioSession

        | _+_ | ir aktivizējis RNCallKeep .

        displayIncomingCall

        - didDisplayIncomingCall

        Atzvanīšana | _+_ |

        RNCallKeep.displayIncomingCall(uuid, handle, localizedCallerName);
        • | _+_ | (virkne)
          • tikai iOS.
        • | _+_ | (virkne)
          • Zvana UUID.
        • | _+_ | (virkne)
          • Zvanītāja tālruņa numurs
        • | _+_ | (virkne)
          • Zvanītāja vārds, kas jāparāda vietējā lietotāja saskarnē
        • | _+_ | (virkne)
          • | _+_ | (iespējots video)
          • | _+_ | (video nav iespējots)
        • | _+_ | (virkne)
          • | _+_ | (zvans tika aktivizēts no PushKit)
          • | _+_ | (zvans nav aktivizēts no PushKit)
        • | _+_ | (objekts)
          • VOIP push krava.

        - didPerformSetMutedCallAction

        Sistēma vai lietotājs izslēdza zvanu:

        uuid
        • | _+_ | (Būla)
        • | _+_ | (virkne)
          • Zvana UUID.

        - didToggleHoldCallAction

        Pašreizējais lietotājs aizturēja vai aizturēja zvanu

        uuid
        • | _+_ | (Būla)
        • | _+_ | (virkne)
          • Zvana UUID.

        - didPerformDTMFAction

        Izmantotajā numurā ierakstiet numuru

        stopCall
        • | _+_ | (virkne)
          • Cipari, kas izstaro dtmf signālu
        • | _+_ | (virkne)
          • Zvana UUID.

        - didLoadWithEvents

        tikai iOS.

        Tiek izsaukts, tiklīdz tiek inicializēts JS konteksts, ja pirms JS konteksta izveides lietotājs ir veicis dažas darbības.

        ko displeja bloks nozīmē css

        Kopš iOS 13, jums jāparāda ienākošais zvans, saņemot PushKit push paziņojumu. Bet, ja lietotne tika nogalināta, JS konteksta izveide prasa zināmu laiku. Ja lietotājs atbild uz zvanu (vai beidz to) pirms JS konteksta inicializācijas, lietotāja darbības tiks nodotas kā šī notikuma notikumu masīvs. Līdzīga situācija var rasties, ja lietotājs vēlas sākt zvanu no nesen lietotnes vai līdzīgas iOS lietotnes, pieņemot, ka jūsu lietotne ir nonāvēta.

        handle
        • | _+_ | Masīvs
          • | _+_ |: virkne Vietējā notikuma nosaukums, piemēram: | _+_ |
          • | _+_ |: objekts Objekts ar datiem, kas nodoti kopā ar konkrētu notikumu, lai to varētu apstrādāt tāpat kā sākotnējo notikumu, piemēram | _+_ | | _+_ | notikums, ja | _+_ | ir | _+_ |

        - pārbaude

        Operētājsistēmā Android, kad lietojumprogramma darbojas fonā, pēc noteiktas kavēšanās OS pārtrauks visus savienojumus, informējot par to. Tāpēc mums ir jāpārbauda, ​​vai lietojumprogramma ir sasniedzama, pirms zvanāt no vietējās tālruņa lietojumprogrammas.

        localizedCallerName

        removeEventListener

        Ļauj noņemt klausītāju no notikuma.

        handleType

        registerPhoneAccount

        Manuāli reģistrē Android tālruņa kontu, kas noder pielāgotu atļauju pieprasījumiem, ja nevēlaties zvanīt | _+_ |. Šo metodi sauc | _+_ |, ja jūs jau izmantojat iestatīšanu, jums tas nav vajadzīgs.

        Šī funkcija ir pieejama tikai operētājsistēmā Android. Operētājsistēmā iOS jums joprojām ir jāzvana | _+_ |.

        generic

        registerAndroidEvents

        Reģistrē Android lietotāja saskarnes notikumus, kas ir noderīgi, ja nevēlaties zvanīt | _+_ |. Šo metodi sauc | _+_ |, ja jūs jau izmantojat iestatīšanu, jums tas nav vajadzīgs.

        Šī funkcija ir pieejama tikai operētājsistēmā Android. Operētājsistēmā iOS jums joprojām ir jāzvana | _+_ |.

        number

        Piemērs

        Pilns piemērs ir pieejams vietnē piemērs mape.

        email

        Zvana saņemšana, kad lietojumprogramma nav sasniedzama.

        Dažos gadījumos jūsu pieteikums var būt nepieejams:

        • kad lietotājs nogalina lietojumprogrammu
        • kad tas jau sen ir fonā (piemēram: pēc ~ 5 minūtēm OS iznīcinās visus savienojumus).

        Lai varētu aktivizēt lietojumprogrammu, lai parādītu ienākošo zvanu, varat izmantot https://github.com/ianlin/react-native-voip-push-notification operētājsistēmā iOS vai BackgroundMessaging no reaģēt-dzimtā-ugunsbāze -(Neobligāti) (tikai Android ierīcēm)-Klausieties FCM ziņojumus fonā).

        Jums ir jānosūta paziņojums savai lietojumprogrammai, piemēram, izmantojot Firebase Android ierīcēm un bibliotēku, kas atbalsta PushKit push iOS.

        PushKit

        Kopš iOS 13 jums būs jāziņo par ienākošajiem zvaniem, kas pamodina jūsu lietojumprogrammu, izmantojot VoIP push. Pievienojiet to savam | _+_ | ja izmantojat VoIP push, lai aktivizētu lietojumprogrammu:

        hasVideo

        Atkļūdot

        Android

        false

        Traucējummeklēšana

        • Pārliecinieties, ka izveidojat derīgu | _+_ | importējot | _+_ | bibliotēka un darbojas | _+_ | kā parādīts piemēros. Ja to nedarīsit un izmantosit pielāgotu virkni, ienākošā zvana ekrāns nekad netiks parādīts operētājsistēmā iOS.

        Veicināt

        Jebkurš vilkšanas pieprasījums, problēmas ziņojums un ieteikums ir ļoti apsveicami!

        Lejupielādes informācija:

        Autors: Mango-Jauns

        Avota kods: https://github.com/Mango-New/react-native-callkeep

        #reaģēt-dzimtā #reakcija #mobilās lietotnes