Instascan: 잘λͺ»λœ asm.js: ν• λ‹Ή μœ ν˜• 뢈일치 [instascan.min.js]:18

에 λ§Œλ“  2018λ…„ 08μ›” 01일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: schmich/instascan

λ‹€λ₯Έ Android μ• ν”Œλ¦¬μΌ€μ΄μ…˜ webviewλ₯Ό μ‚¬μš©ν•˜μ—¬ QR μ½”λ“œ μŠ€μΊλ„ˆκ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이것은 λ‚˜μ—κ²Œ ν‘œμ‹œλ˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

λ˜ν•œ 카메라λ₯Ό μ‹œμž‘ν•˜λ„λ‘ μ„ νƒν•˜λ©΄ Uncaught(in promise) {name: "NotAllowedError", message: "Permission denied", constraint: undefined, toString: Ζ’}κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

데λͺ¨ νŽ˜μ΄μ§€μ˜ νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ μž‘λ™ν•˜κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
https://schmich.github.io/instascan/
파일 λ§ν¬λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
https://rawgit.com/schmich/instascan-builds/master/instascan.min.js

λͺ¨λ“  16 λŒ“κΈ€

λ‚˜λŠ” μ§€κΈˆ λ˜‘κ°™μ€ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€!

λ…ΈνŠΈλΆ Lenovo ThinkPad, Windows 10, Google Chrome 버전 69.0.3497.100(64λΉ„νŠΈ)μ—μ„œ μ—¬μ „νžˆ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

Google 크둬 Android λ²„μ „μ—μ„œ λͺ‡ 달 전에 잘 μž‘λ™ ν–ˆμŠ΅λ‹ˆκΉŒ ??? @ Sony Xperia Z3 컴팩트 Andriod 버전 6.0.1

Google Chrome Android 버전 69.0.3497.100μ—μ„œ 더 이상 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μŠ€μΊλ„ˆ.start에 κ°€κΉŒμš΄ 문제:
잘λͺ»λœ asm.js: ν• λ‹Ή μœ ν˜• 뢈일치
qr. html:1 μž‘νžˆμ§€ μ•ŠμŒ(약속 쀑) {이름: "NotAllowedError", λ©”μ‹œμ§€: "μ‚¬μš© κΆŒν•œ 거뢀됨", μ œμ•½ 쑰건: μ •μ˜λ˜μ§€ μ•ŠμŒ, toString: Ζ’}
Promise.then(비동기)
E.async @ instascan.min.js:7
κ°’ @ instascan.min.js:9

μΈμŠ€νƒ€μŠ€μΊ” 정말 λ©‹μ Έμš”!
μˆ˜μ •ν•΄μ£Όμ‹œλ©΄ 정말 κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€ :-)

μ§€κΈˆκΉŒμ§€ https 도메인을 μ‚¬μš©ν–ˆλŠ”λ°,
이제 λͺ…μ‹œμ μœΌλ‘œ https 도메인을 μ°Έμ‘°ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.

Android Firefox 62.0.1μ—μ„œλ„ μž‘λ™ν•˜μ§€ μ•ŠμŒ

Android Opera 47.3.2249.130976μ—μ„œ 잘 μž‘λ™
Android Edge 42.0.0.2549μ—μ„œ 잘 μž‘λ™

gulp release 둜 instascan.min.jsλ₯Ό μƒˆλ‘œ λΉŒλ“œν•˜λ©΄ 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

gulp release 둜 instascan.min.jsλ₯Ό μƒˆλ‘œ λΉŒλ“œν•˜λ©΄ 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”! 이것은 λ‚΄ νœ΄λŒ€ μ „ν™”μ˜ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.
Sony Xperia Z3 컴팩트 Andriod 버전 6.0.1
ꡬ글 크둬 μ•ˆλ“œλ‘œμ΄λ“œ 버전 69.0.3497.100
μ•ˆλ“œλ‘œμ΄λ“œ νŒŒμ΄μ–΄ν­μŠ€ 62.0.1

λˆ„κ΅¬λ“ μ§€ κΏ€κΊ½κΏ€κΊ½ 릴리슀 μΆ•μ†Œ κ²°κ³Όλ₯Ό κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? :(

gulp v4둜 λΉŒλ“œν•  수 μ—†μŠ΅λ‹ˆλ‹€. gulpfile.js에 μ•½κ°„μ˜ 변경이 ν•„μš”ν•  것 κ°™μŠ΅λ‹ˆλ‹€.
gulp v.3.9.1둜 λΉŒλ“œν•  수 μžˆμ§€λ§Œ gulp-uglifyκ°€ μ—¬μ „νžˆ κΉ¨λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. gulpfileμ—μ„œ uglify 쀄을 μ œκ±°ν–ˆκ³  더 큰 instascan.js 파일(~+1MB)을 ν¬μƒμ‹œν‚€λ©΄μ„œ 이 였λ₯˜κ°€ μ‚¬λΌμ‘ŒμŠ΅λ‹ˆλ‹€.
ν•˜μ§€λ§Œ κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  #197μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ "createObjectURL"에 μ—¬μ „νžˆ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

νŽΈμ§‘: λŒ“κΈ€ #139μ—μ„œ νŒŒμΌμ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ "잘λͺ»λœ asm" 였λ₯˜κ°€ μžˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. chrisgunawardenaμ—κ²Œλ„ κ°μ‚¬ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ μΆ•μ†Œλœ νŒŒμΌμž…λ‹ˆλ‹€. https://gist.github.com/chris-gunawardena/15d507d11dc09ef8f7653f1005eda203

chrisμ—κ²Œ κ°μ‚¬ν•˜μ§€λ§Œ λ§ν¬ν•œ λ²„μ „μœΌλ‘œ 인해 "카메라가 μ •μ˜λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€."λΌλŠ” 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. (λ‹€λ₯Έ λͺ¨λ“  것은 동일).

μ΄ˆκΈ°ν™”λ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•©λ‹ˆλ‹€. 이것이 λ‚΄κ°€ μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

const initQrCodeScanner = () => {
  let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
  Instascan.Camera.getCameras().then(cameras => {
    scanner.camera = cameras[cameras.length - 1];
    scanner.start();
  }).catch(console.error);

  scanner.addListener('scan', content => {
    scanner.stop();
    try { window.location.hash = new URL(content).hash } catch (e) { console.log(e) }
  });

};

μ—¬λ³΄μ„Έμš”. 멍청이λ₯Ό λ„μ™€μ£Όμ„Έμš”. μ˜ˆμ œμ™€ 릴리슀 v 1.0.0을 μ‚¬μš©ν•˜μ—¬ λͺ¨λ“  것이 μž‘λ™ν•œ λ‹€μŒ 컴퓨터λ₯Ό λ‹«μ•˜λ‹€κ°€ λ‹€μ‹œ μ—΄μ—ˆλŠ”λ° κ°‘μžκΈ° CreateObjectUrl λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ 이 μŠ€λ ˆλ“œμ—μ„œ κ°€λ¦¬ν‚€λŠ” μΆ•μ†Œλœ νŒŒμΌμ„ μ‚¬μš©ν–ˆλŠ”λ° 이제 mjcapper처럼 "Camera is not defined" 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

chris-gunawardenaκ°€ ν–ˆλ˜ λŒ€λ‘œ ν•˜λ €κ³  ν–ˆκ³ (μ •ν™•ν•˜κ²Œ λ³΅μ‚¬ν•˜μ—¬ λΆ™μ—¬λ„£κΈ°) 이제 였λ₯˜λŠ” μ—†μ§€λ§Œ 카메라에 λΉ„λ””μ˜€κ°€ μ—†μŠ΅λ‹ˆλ‹€.

어젯밀에 μ™„λ²½ν•˜κ²Œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€!! (κ·Έ λ™μ•ˆ λ‚΄ Chrome λΈŒλΌμš°μ €μ— μ—…λ°μ΄νŠΈκ°€ μžˆμ—ˆμ„κΉŒμš”? λͺ°λΌμš”).

κ·Έλž˜μ„œ μ €λŠ” 맀우 μ‹€λ§μŠ€λŸ½μŠ΅λ‹ˆλ‹€. λ˜ν•œ 기둝을 μœ„ν•΄ localhostμ—μ„œ 개발 μ€‘μž…λ‹ˆλ‹€. 이전에 카메라가 μž‘λ™ μ€‘μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 크둬이 μ—…λ°μ΄νŠΈ λ˜μ—ˆκΈ° λ•Œλ¬Έμž…λ‹ˆκΉŒ? λ‚΄ 버전은 λ‹€μŒκ³Ό 같이 λ§ν•©λ‹ˆλ‹€.

버전 71.0.3578.98(곡식 λΉŒλ“œ)(64λΉ„νŠΈ)

IE도 ν•΄λ΄€λŠ”λ° μ˜μƒμ΄ μ•ˆλ‚˜μ˜€λ„€μš”. 였λ₯˜λŠ” μ—†μ§€λ§Œ λΉ„λ””μ˜€λ„ μ—†μŠ΅λ‹ˆλ‹€.

λ„μ™€μ£Όμ„Έμš”. :(

크둬 μž‘μ—… μ˜ˆμ‹œ: https://codepen.io/chris-gunawardena/pen/REGQPR?editors=1111

λͺ¨λ“  λΈŒλΌμš°μ €(Safari, Mac의 Chrome, Chrome Android)μ—μ„œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.
ν˜„μž¬ Mac의 Firefoxμ—μ„œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€.
Firefox λͺ¨λ°”μΌμ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

minfy/uglyJs/gulpλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜μ •ν•˜λŠ” 방법에 λŒ€ν•œ 단계별 정보(noob용)λ₯Ό μ›ν•©λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

νŽΈμ§‘: 더 이상 μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ λ§ν•œ 것은 메인 νŽ˜μ΄μ§€μ— 제곡된 μ˜ˆμ œμ— λŒ€ν•œ μ‚¬μ‹€μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이전에 κ²Œμ‹œλœ 예제 https://codepen.io/chris-gunawardena/pen/REGQPR?editors=1111 은 μ‹€μ œλ‘œ 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€.

데λͺ¨ νŽ˜μ΄μ§€μ˜ νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ μž‘λ™ν•˜κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
https://schmich.github.io/instascan/
파일 λ§ν¬λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
https://rawgit.com/schmich/instascan-builds/master/instascan.min.js

크둬 μž‘μ—… μ˜ˆμ‹œ: https://codepen.io/chris-gunawardena/pen/REGQPR?editors=1111

이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €λ©΄ SSL μΈμ¦μ„œκ°€ ν•„μš”ν•©λ‹ˆκΉŒ?
localhostμ—μ„œλŠ” 잘 μž‘λ™ν•˜μ§€λ§Œ SSL 인증이 μ—†λŠ” 라이브 μ›Ήν˜ΈμŠ€νŒ…μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰