λ€λ₯Έ Android μ ν리μΌμ΄μ webviewλ₯Ό μ¬μ©νμ¬ QR μ½λ μ€μΊλκ° μ λλ‘ μλνμ§ μμ΅λλ€. μ΄κ²μ λμκ² νμλλ λ¬Έμ μ λλ€.
λν μΉ΄λ©λΌλ₯Ό μμνλλ‘ μ ννλ©΄ Uncaught(in promise) {name: "NotAllowedError", message: "Permission denied", constraint: undefined, toString: Ζ}κ° νμλ©λλ€.
λλ μ§κΈ λκ°μ λ¬Έμ κ° μμ΅λλ€!
λ ΈνΈλΆ 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 μΈμ¦μ΄ μλ λΌμ΄λΈ μΉνΈμ€ν
μμλ μλνμ§ μκΈ° λλ¬Έμ
λλ€.
κ°μ₯ μ μ©ν λκΈ
λ°λͺ¨ νμ΄μ§μ νμΌμ μ¬μ©νμ¬ μλνκ² ν μ μμ΅λλ€.
https://schmich.github.io/instascan/
νμΌ λ§ν¬λ λ€μκ³Ό κ°μ΅λλ€.
https://rawgit.com/schmich/instascan-builds/master/instascan.min.js