Obsah:

Bezdrôtové zdieľanie fotografií v aplikácii iOS: 6 krokov
Bezdrôtové zdieľanie fotografií v aplikácii iOS: 6 krokov

Video: Bezdrôtové zdieľanie fotografií v aplikácii iOS: 6 krokov

Video: Bezdrôtové zdieľanie fotografií v aplikácii iOS: 6 krokov
Video: Как использовать сигнал на iPhone 2024, November
Anonim

V tomto návode vytvoríme aplikáciu pre iOS so systémom Swift, ktorá vám umožní zdieľať fotografie s kýmkoľvek v okolí bez toho, aby bolo potrebné párovanie zariadení.

Na odosielanie údajov pomocou zvuku budeme používať Chirp Connect a na ukladanie obrázkov do cloudu Firebase.

Odosielanie údajov so zvukom vytvára jedinečný zážitok, v ktorom môžu byť údaje vysielané komukoľvek v dosahu sluchu.

Krok 1: Nainštalujte požiadavky

Xcode

Inštalácia z App Store.

CocoaPods

sudo gem nainštalujte cocoapods

Chirp Connect iOS SDK

Zaregistrujte sa na adrese admin.chirp.io

Krok 2: Nastavenie projektu

1. Vytvorte projekt Xcode.

2. Prihláste sa do Firebase a vytvorte nový projekt.

Povoľte Firestore kliknutím na sekciu Databáza a výberom Cloud Firestore. Kliknutím na Funkcie povolíte aj cloudové funkcie.

3. Spustite nastavenie aplikácie pre iOS na stránke Prehľad projektu

V nastaveniach projektu Xcode budete potrebovať identifikátor balíka na karte Všeobecné. Po vytvorení podfile budete pred spustením inštalácie pod musieť pridať nasledujúce závislosti.

# Pods pre projekt

pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'

4. Stiahnite si najnovšiu súpravu Chirp Connect iOS SDK z adresy admin.chirp.io/downloads

5. Podľa pokynov na adrese developers.chirp.io integrujte Chirp Connect do Xcode.

Prejdite na Začíname / iOS. Potom prejdite nadol a postupujte podľa pokynov na nastavenie Swift. To bude zahŕňať import rámca a vytvorenie premosťovacej hlavičky.

Teraz je nastavenie dokončené, môžeme začať písať nejaký kód! Je vhodné skontrolovať zostavenia projektu v každej fáze nastavenia.

Krok 3: Napíšte kód IOS

1. Importujte Firebase do svojho ViewController a rozšírte NSData tak, aby obsahovala rozšírenie hexString, aby sme mohli prevádzať užitočné zaťaženie Chirp Connect na hexadecimálny reťazec. (Chirp Connect bude k dispozícii globálne vďaka premosťovacej hlavičke).

import UIKit

importovať Firebase

údaje rozšírenia {

var hexString: String {návratová mapa {String (formát: "%02x", UInt8 ($ 0))}.joined ()}}

2. Pridajte do svojho ViewController delegátov ImagePicker a deklarujte premennú ChirpConnect s názvom connect.

trieda ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? prepísať func viewDidLoad () {super.viewDidLoad ()…

3. Po super.viewDidLoad inicializujte Chirp Connect a nastavte prijaté spätné volanie. Pri prijatom spätnom volaní stiahneme obrázok z Firebase pomocou prijatého užitočného zaťaženia a aktualizujeme ImageView. APP_KEY a APP_SECRET môžete získať na adrese admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(license: String ?, error: Error?) in if error == nil {if let license = license {connect.setLicenceString (licencia) connect.start () connect.receivedBlock = {(data: Data?) -> () in if let data = data {print (String (format: "Received data: %@", data.hexString)) let file = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, error in if let error = error {print ("Chyba: %@", chyba.localizedDescription)} else {self.imageView.image = UIImage (data: imageData!)}}} else {print ("Dekódovanie zlyhalo"); }}}}

4. Teraz pridajte kód na odoslanie obrazových údajov, akonáhle boli vybraté v používateľskom rozhraní.

func imagePickerController (_ výber: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any])

{let imageData = info [UIImagePickerControllerOriginalImage] ako? UIImage nechajte údaje: Údaje = UIImageJPEGRepresentation (imageData !, 0,1)! self.imageView.image = imageData nechajte metadáta = StorageMetadata () metadata.contentType = "image/jpeg", ak sa necháte pripojiť = pripojiť {nech kľúč: Data = connect.randomPayload (withLength: 8) Firestore.firestore (). collection (" nahráva "). addDocument (údaje: [" kľúč ": key.hexString," časová pečiatka ": FieldValue.serverTimestamp ()]) {chyba v prípade, že nech chyba = chyba {print (error.localizedDescription)}} Storage.storage ().reference (). child (key.hexString).putData (údaje, metadáta: metadáta) {(metadáta, chyba) v if let error = chyba {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animovaný: pravda, dokončenie: nula)}

Poznámka: Do svojho servera Info.plist budete musieť pridať vyhlásenia o ochrane osobných údajov - Popis použitia knižnice fotografií, Ochrana osobných údajov - Popis použitia knižnice fotografií a Ochrana osobných údajov - Popis použitia mikrofónu, aby ste udelili povolenia na používanie fotoaparátu, knižnice fotografií a mikrofónu.

Krok 4: Vytvorte používateľské rozhranie

Vytvorte používateľské rozhranie
Vytvorte používateľské rozhranie

Teraz prejdite na súbor Main.storyboard a vytvorte používateľské rozhranie.

1. Potiahnite cez ImageView a dve tlačidlá na Storyboard z panelu Knižnica objektov v pravom dolnom rohu.

2. Pre každé tlačidlo pridajte výškové obmedzenie asi 75 pixelov tak, že vyberiete komponent a kliknete na tlačidlo Pridať nové obmedzenia (to vyzerá ako bojovník za tie Star Wars), potom zadajte výšku a stlačte kláves Enter.

3. Vyberte všetky tri súčasti a umiestnite ich do zobrazenia stohu kliknutím na tlačidlo Vložiť do zásobníka.

4. Teraz otvorte pomocného editora a stlačením klávesu CTRL a potiahnutím z každého komponentu do kódu ViewController vytvorte zásuvky pre každý komponent.

@IBOutlet var imageView: UIImageView!

@IBOutlet var openLibraryButton: UIButton! @IBOutlet var openCameraButton: UIButton!

5. Teraz CTRL a potiahnutím z oboch tlačidiel vytvoríte akciu na otvorenie používateľského rozhrania kamery/knižnice.

6. Do akcie Otvorená knižnica pridajte nasledujúci kód

@IBAction func openLibrary (_ odosielateľ: ľubovoľný) {

nech imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animovaný: true, dokončenie: nula)}

7. V akcii Otvorená kamera

@IBAction func openCamera (_ odosielateľ: ľubovoľný) {

nech imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animovaný: true, dokončenie: nulové)}

Krok 5: Napíšte funkciu cloudu

Pretože fotografie nemusia byť navždy uložené v cloude, môžeme na vyčistenie napísať cloudovú funkciu. Službu cron, ako napríklad cron-job.org, to môže každú hodinu spustiť ako funkciu

Najprv musíme nainštalovať nástroje firebase

npm install -g firebase -tools

Potom z koreňového adresára projektu spustite

firebase init

Inicializáciou cloudových funkcií vyberte funkcie z príkazového riadka. Firestore môžete tiež povoliť, ak chcete tiež nakonfigurovať Firestore.

Potom otvorte funkcie/index.js a pridajte nasledujúci kód. Nezabudnite zmeniť

do vášho ID projektu Firebase.

const functions = require ('firebase-functions');

const admin = require ('firebase-admin'); admin.initializeApp () exports.cleanup = functions.https.onRequest ((požiadavka, odpoveď) => {admin.firestore ().collection ('uploads'). where ('timestamp', '{snapshot.forEach (doc = > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) return response.status (200). Odoslať ('OK')}). Catch (err => response.status (500). Odoslať (err))});

Nasadenie cloudových funkcií je také jednoduché ako spustenie tohto príkazu.

nasadenie firebase

Potom na cron-job.org vytvorte úlohu, ktorá bude spúšťať tento koncový bod každú hodinu. Koncový bod bude niečo ako

us-central1-project_id.cloudfunctions.net/cleanup

Krok 6: Spustite aplikáciu

Spustite aplikáciu na simulátore alebo zariadení iOS a začnite zdieľať fotografie!

Odporúča: