Kaydol

Merhaba Sevgili Floodlar.com Kullanıcısı, Web sitemizde geçirdiğiniz zaman ve bu büyüleyici flood evrenine katılımınız için teşekkür ederiz. Floodların geniş dünyasıyla dolu deneyiminizi daha fazla keşfetmek için, web sitemizi sınırsız olarak kullanabilmeniz adına giriş yapmanız gerekmektedir.

Oturum aç

Merhaba Floodlar.com Kullanıcısı, İlk üç sayfayı tamamladınız, tebrikler! Ancak, floodların devamını görmek ve daha fazla interaktif deneyim yaşamak için giriş yapmanız gerekiyor. Hesabınız yoksa, hızlıca oluşturabilirsiniz. Sınırsız floodlar ve etkileşimler sizleri bekliyor. Giriş yapmayı unutmayın!

Şifremi hatırlamıyorum

Şifreniz mi unuttunuz? Endişelenmeyin! Lütfen kayıtlı e-posta adresinizi giriniz. Size bir bağlantı göndereceğiz ve bu link üzerinden yeni bir şifre oluşturabileceksiniz.

Fil Necati Masonlar Locası Subreddit Adı Nedir? Cevap: ( N31 )

Üzgünüz, flood girme izniniz yok, Flood girmek için giriş yapmalısınız.

Lütfen bu Floodun neden bildirilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Lütfen bu cevabın neden bildirilmesi gerektiğini kısaca açıklayın.

Lütfen bu kullanıcının neden rapor edilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Mobil Uygulamada Açın

Güncel Floodlar En sonuncu Nesne

MishiPay’in PWA’sı işlemleri 10 kat artırır ve 2,5 yıl kuyruktan tasarruf sağlar

MishiPay’in PWA’sı işlemleri 10 kat artırır ve 2,5 yıl kuyruktan tasarruf sağlar

MishiPay, alışveriş yapanların kasada sıraya girerek zaman kaybetmek yerine akıllı telefonlarıyla alışverişlerini taramalarını ve ödemelerini yapmalarını sağlar. MishiPay ile Tara ve Git Teknoloji sayesinde alışveriş yapanlar, ürünlerin üzerindeki barkodu okutmak ve ödeme yapmak için kendi telefonlarını kullanabilir ve ardından mağazadan ayrılabilirler. Çalışmalar mağaza içi kuyruğun küresel perakende sektörüne yılda yaklaşık 200 milyar dolara mal olduğunu ortaya koyuyor.

Teknolojimiz, kullanıcıların MishiPay özellikli mağazaları bulmasına, fiziksel mağaza içindeki ürün barkodlarını taramasına ve ardından istedikleri dijital ödeme yöntemini kullanarak ödeme yapmasına olanak tanıyan GPS sensörleri ve kameralar gibi cihaz donanımı özelliklerine dayanır. Scan & Go teknolojimizin ilk sürümleri, platforma özel iOS ve Android uygulamalarıydı ve ilk benimseyenler teknolojiyi çok sevdi. Bir PWA’ya geçişin işlemleri nasıl 10 kat artırdığını ve 2,5 yıllık kuyruk tasarrufu sağladığını öğrenmek için okumaya devam edin!

    10×

    Artan işlemler

Meydan okumak #

Kullanıcılar, sırayı atlamalarına ve sorunsuz bir mağaza içi deneyim yaşamalarına olanak tanıdığından, teknolojimizi bir kuyrukta veya ödeme sırasında beklerken son derece yararlı buluyor. Ancak bir Android veya iOS uygulamasını indirmenin zorluğu, kullanıcıların değere rağmen teknolojimizi seçmemelerine neden oldu. Bu, MishiPay için büyüyen bir zorluktu ve daha düşük bir giriş engeli ile kullanıcı benimsemesini artırmamız gerekiyordu.

Çözüm #

PWA’yı oluşturma ve başlatma konusundaki çabalarımız, kurulum güçlüklerini ortadan kaldırmamıza yardımcı oldu ve yeni kullanıcıları teknolojimizi fiziksel bir mağazada denemeye, kuyruğu atlamaya ve sorunsuz bir alışveriş deneyimi yaşamaya teşvik etti. Lansmandan bu yana, platforma özel uygulamalarımıza kıyasla PWA’mızın kullanıcı tarafından benimsenmesinde büyük bir artış gördük.

PWA’yı doğrudan başlatma (solda, daha hızlı) ile Android uygulamasını yükleme ve başlatma (sağda, daha yavaş) arasındaki yan yana karşılaştırma.
Tüm işlemlerin çoğunluğu web üzerinde gerçekleşir.

Teknik derin dalış #

MishiPay özellikli mağazaların yerini bulma #

Bu özelliği etkinleştirmek için, getCurrentPosition() IP tabanlı bir geri dönüş çözümü ile birlikte API.

const geoOptions = {
timeout: 10 * 1000,
enableHighAccuracy: true,
maximumAge: 0,
};

window.navigator.geolocation.getCurrentPosition(
(position) => {
const cords = position.coords;
console.log(`Latitude : ${cords.latitude}`);
console.log(`Longitude : ${cords.longitude}`);
},
(error) => {
console.debug(`Error: ${error.code}:${error.message}`);
/**
* Invoke the IP based location services
* to fetch the latitude and longitude of the user.
*/

},
geoOptions,
);

Bu yaklaşım, uygulamanın önceki sürümlerinde iyi çalıştı, ancak daha sonra aşağıdaki nedenlerden dolayı MishiPay kullanıcıları için büyük bir sorun olduğu kanıtlandı:

  • IP tabanlı fallback çözümlerinde konum yanlışlıkları.
  • Bölge başına büyüyen MishiPay etkin mağaza listesi, kullanıcıların bir listeyi kaydırmasını ve doğru mağazayı belirlemesini gerektiriyor.
  • Kullanıcılar yanlışlıkla bazen yanlış mağazayı seçerek satın almaların yanlış kaydedilmesine neden oluyor.

Bu sorunları çözmek için, her mağaza için mağaza içi ekranlara benzersiz coğrafi konumlu QR kodları yerleştirdik. Daha hızlı bir katılım deneyiminin yolunu açtı. Kullanıcılar, Scan & Go web uygulamasına erişmek için mağazalarda bulunan pazarlama materyallerinin üzerinde basılı coğrafi konumlu QR kodlarını taramaları yeterlidir. Bu şekilde, web adresini yazmaktan kurtulabilirler. mishipay.shop hizmete erişmek için.

PWA kullanarak mağaza içi tarama deneyimi.

ürünleri tarama #

MishiPay uygulamasındaki temel özelliklerden biri barkod taramadır, çünkü bu, kullanıcılarımıza kendi satın alımlarını tarama ve başka türlü kasaya ulaşmadan önce bile devam eden toplamı görme yetkisi verir.

Web’de bir tarama deneyimi oluşturmak için üç temel katman belirledik.

Video akışı #

yardımı ile getUserMedia() yöntemiyle, kullanıcının geri görüş kamerasına aşağıda listelenen kısıtlamalar ile erişebiliriz. Yöntemin çağrılması, kullanıcıların kameralarına erişimi kabul etmeleri veya reddetmeleri için otomatik olarak bir istemi tetikler. Video akışına erişimimiz olduğunda, onu aşağıda gösterildiği gibi bir video öğesine aktarabiliriz:

/**
* Video Stream Layer
* https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia
*/

const canvasEle = document.getElementById('canvas');
const videoEle = document.getElementById('videoElement');
const canvasCtx = canvasEle.getContext('2d');
fetchVideoStream();
function fetchVideoStream() {
let constraints = { video: { facingMode: 'environment' } };
if (navigator.mediaDevices !== undefined) {
navigator.mediaDevices
.getUserMedia(constraints)
.then((stream) => {
videoEle.srcObject = stream;
videoStream = stream;
videoEle.play();
// Initiate frame capture - Processing Layer.
})
.catch((error) => {
console.debug(error);
console.warn(`Failed to access the stream:${error.name}`);
});
} else {
console.warn(`getUserMedia API not supported!!`);
}
}

İşleme katmanı #

Belirli bir video akışındaki bir barkodu algılamak için, kareleri periyodik olarak yakalamamız ve bunları kod çözücü katmanına aktarmamız gerekir. Bir kare yakalamak için akışları basitçe çizeriz. VideoElement üzerine HTMLCanvasElement kullanmak drawImage() yöntemi Tuval API’sı.

/**
* Processing Layer - Frame Capture
* https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Manipulating_video_using_canvas
*/

async function captureFrames() {
if (videoEle.readyState === videoEle.HAVE_ENOUGH_DATA) {
const canvasHeight = (canvasEle.height = videoEle.videoHeight);
const canvasWidth = (canvasEle.width = videoEle.videoWidth);
canvasCtx.drawImage(videoEle, 0, 0, canvasWidth, canvasHeight);
// Transfer the `canvasEle` to the decoder for barcode detection.
const result = await decodeBarcode(canvasEle);
} else {
console.log('Video feed not available yet');
}
}

Gelişmiş kullanım durumları için, bu katman ayrıca kırpma, döndürme veya gri tonlamaya dönüştürme gibi bazı ön işleme görevlerini de gerçekleştirir. Bu görevler CPU yoğun olabilir ve barkod tarama uzun süren bir işlem olduğu için uygulamanın yanıt vermemesine neden olabilir. yardımı ile Ekran DışıTuval API ile, CPU-yoğun görevi bir web çalışanına devredebiliriz. Donanım grafik hızlandırmasını destekleyen cihazlarda, WebGL API ve WebGL2RenderingContext CPU yoğun ön işleme görevlerindeki kazanımları optimize edebilir.

kod çözücü katmanı #

Son katman, işleme katmanı tarafından yakalanan çerçevelerden barkodların kodunun çözülmesinden sorumlu olan kod çözücü katmanıdır. sayesinde Şekil Algılama API’sı (henüz tüm tarayıcılarda mevcut değildir) tarayıcının kendisi bir tarayıcıdan barkodun kodunu çözer. ImageBitmapSourcehangi olabilir img öğe, bir SVG image eleman, bir video eleman, bir canvas eleman, bir Blob nesne, bir ImageData nesne veya bir ImageBitmap nesne.

/**
* Barcode Decoder with Shape Detection API
* https://web.dev/shape-detection/
*/

async function decodeBarcode(canvas) {
const formats = [
'aztec',
'code_128',
'code_39',
'code_93',
'codabar',
'data_matrix',
'ean_13',
'ean_8',
'itf',
'pdf417',
'qr_code',
'upc_a',
'upc_e',
];
const barcodeDetector = new window.BarcodeDetector({
formats,
});
try {
const barcodes = await barcodeDetector.detect(canvas);
console.log(barcodes);
return barcodes.length > 0 ? barcodes[0]['rawValue'] : undefined;
} catch (e) {
throw e;
}
}

Henüz Shape Detection API’yi desteklemeyen cihazlarda, barkodların kodunu çözmek için bir geri dönüş çözümüne ihtiyacımız var. Shape Detection API, bir getSupportedFormats() Shape Detection API ile yedek çözüm arasında geçiş yapmaya yardımcı olan yöntem.

// Feature detection.
if (!('BarceodeDetector' in window)) {
return;
}
// Check supported barcode formats.
BarcodeDetector.getSupportedFormats()
.then((supportedFormats) => {
supportedFormats.forEach((format) => console.log(format));
});

Yedek çözüm #

Taramayı gerçekleştirmek için herhangi bir web uygulamasıyla kolayca entegre edilebilen çeşitli açık kaynaklı ve kurumsal tarama kitaplıkları mevcuttur. İşte MishiPay’in önerdiği kitaplıklardan bazıları.

Yukarıdaki kitaplıkların tümü, yukarıda tartışılan tüm katmanları oluşturan tam teşekküllü SDK’lardır. Ayrıca çeşitli tarama işlemlerini desteklemek için arayüzler sunarlar. İş gerekçesi için gereken barkod biçimlerine ve algılama hızına bağlı olarak, Wasm ve Wasm olmayan çözümler arasında bir karar verilebilir. Barkodu çözmek için ek bir kaynak (Wasm) gerektirme yüküne rağmen, Wasm çözümleri doğruluk açısından Wasm olmayan çözümlerden daha iyi performans gösterir.

Tırmanır birincil tercihimizdi. Ticari kullanım durumlarımız için gereken tüm barkod biçimlerini destekler; tarama hızında mevcut tüm açık kaynak kitaplıklarını geride bırakır.

Taramanın geleceği #

Şekil Algılama API’si tüm büyük tarayıcılar tarafından tam olarak desteklendiğinde, potansiyel olarak yeni bir HTML öğemiz olabilir. &LTscanner> bir barkod tarayıcı için gerekli yeteneklere sahiptir. MishiPay’deki Mühendislik, Scan & Go ve diğerleri gibi deneyimlere olanak tanıyan artan sayıdaki açık kaynak ve lisanslı kitaplıklar nedeniyle, barkod tarama işlevinin yeni bir HTML öğesi olması için sağlam bir kullanım durumu olduğuna inanıyor.

Çözüm #

Uygulama yorgunluğu, geliştiricilerin ürünleri pazara girdiğinde karşılaştıkları bir sorundur. Kullanıcılar genellikle bir uygulamanın onlara verdiği değeri onu indirmeden önce anlamak isterler. MishiPay’in alışveriş yapanların zamanından tasarruf ettiği ve deneyimlerini iyileştirdiği bir mağazada, bir uygulamayı kullanmadan önce indirmeyi beklemek mantıksız. PWA’mızın yardımcı olduğu yer burasıdır. Giriş engelini ortadan kaldırarak işlemlerimizi 10 kat artırdık ve kullanıcılarımızın 2,5 yıl kuyrukta bekleme derdinden kurtulmalarını sağladık.

teşekkürler #

Bu makale tarafından incelendi Joe Karışık.

İlgili Mesajlar

Yorum eklemek için giriş yapmalısınız.