IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

3Beğeni(ler)
  • 2 Post By SuLh
  • 1 Post By Forbidden

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 09 Ağustos 2024, 15:45   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
React Native / Expo Asset Downloader




React Native Expo için uygulama açılışında asset indirme sistemi yapmıştım kendim için daha önce.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
import * as FileSystem from 'expo-file-system'; export class AssetsDownloader { /** * expo construactor * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]m {*} u -> url * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]m {*} n -> name */ downloadResumable = (u, n) => { return FileSystem.createDownloadResumable( u, this.dir + n, {}, this.callback ); } /** * * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]m {*} downloadProgress -> from downloadResumable */ callback = downloadProgress => { const progress = downloadProgress.totalBytesWritten / downloadProgress.totalByte***pectedToWrite; return progress; } /** * * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]m {*} fn -> Function that fetch the asset list */ constructor(fn) { this.fn = fn; this.assets = []; this.dir = FileSystem.documentDirectory + "assets/"; } /** * * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]m {*} k -> Key name // ex: data.image (key: image) * @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]m {*} b -> BASE_API_URL */ getFiles = async(k, b) => { let res = await this.fn(); if (res.data?.length == 0 || res.data == undefined) this.assets = []; const { data } = res; data.forEach((item) => { this.assets.push({ url: item[k] != null ? `${b}${item[k]}`: null, name: item[k] }); }) return this.assets; } downloadAssets = async(assets) => { let dir = await FileSystem.getInfoAsync(this.dir); if (!dir.exists) await FileSystem.makeDirectoryAsync(this.dir, { intermediates: true }); assets.forEach(async(item) => { var info = await FileSystem.getInfoAsync(this.dir + item.name) if (info.exists) return console.log(`Assets ${item.name} already downloaded!`) this.downloadResumable(item.url, item.name).downloadAsync().then(({ uri }) => { console.log(`Assets ${item.name} downloaded!`) }) }) } }

Kullanımı:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
let url = "https://blabla.com/api/getImages/"; const getImages = async() => { let res = await axios.get(url); } const assetDownloader = new AssetsDownloader(getImages); assetDownloader.getFiles("name", url).then((res) => { var filteredAssets = res.filter(x => x.name != null); assetDownloader.downloadAssets(filteredAssets); })


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Alt 16 Ağustos 2024, 01:01   #2
Çevrimiçi
~ BuSohbet.Com ~
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: React Native / Expo Asset Downloader




Emeğine sağlık usta

__________________
Beni yoran yıllar değil, namert kullar.
 
Alıntı ile Cevapla

Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
CNR EXPO'ya yoğun ilgi NarÇiçeği Kültür ve Sanat 0 07 Mart 2016 16:15
Türkiye EXPO 2015'te Desmont Haber Arşivi 0 21 Kasım 2014 20:00
Expo Savaşı Kızışıyor JB Haber Arşivi 0 04 Ocak 2011 04:34